今天学到了scala的基础知识点,以下是我总结的一些知识点:
1.Scala的数据类型
在scala中,有Byte、Char、Short、Int、Long、Float、Double、Boolean等数据类型。
2.变量的定义
强类型语言:Java
弱类型语言:JS、Scala
- 字符串的插值操作
Scala中的三个字符串插值器:s、f、raw
S:在任何字符串前加上s,就可以直接在串中使用变量了
f:除了 s 的功能外(不指定格式就和 s 一样),还能进行格式化输出,在变量后用 % 指定输出格式
raw:除了对字面值中的字符不做编码外,raw 插值器与 s 插值器在功能上是相同的
以下是我的一些验证:
- 条件表达式
If
If else(单分支)
If else if else(多分支)
def main(args: Array[String]): Unit = {
val x = 3
val y = if (x > 0) 3 else -3
println("y=" + y)
验证:
val z = if (x > 1) 1 else "error"
println("z=" + z)
验证:
结果:
val m = if (x > 5) 3
println("m=" + m)
验证:
结果:
val n = if (x > 5) 3 else ()
println("n=" + n)
结果:
scala> val y = if(1>1) 1 else "error"
y: Any = error
scala> val y = if(x>1) 1
y: AnyVal = ()
5.类型的转换
val num = "11"
val num_int = num.toInt
println(num_int+22)
验证:
结果:
6.块表达式
def main(args: Array[String]): Unit = {
val x = 0
val result = {
if(x < 0)
1
else if(x >= 1)
-1
else
"error"
}
println(result)
}
验证:
7.循环语句
for循环
scala>for (i <- 1 to 10) println(i)
打印1到10
验证:
<scala> 1 to 10
for (i <- 1 until 10) println(i)
打印1到9
验证:
scala> 1 until 10
scala> val str = "hello"
scala> for(c <- str) println(c)
scala>for (i <- 0 until str.length) println(str.charAt(i))
遍历数组:
scala> val arr = Array(1,2,3,4,5,6)
scala> for(a <- arr) println(a)
scala> for(i <- 0 until arr.length) println(arr(i))
双重循环:
输出个位数与十位数不相同的两位数(个位、十位数均从1-3取值)
scala> for(i <- 1 to 3;j <- 1 to 3 if i != j) println(i*10+j)
验证:
数组操作:
对数组中的每个数乘以10,生成一个新数组:
scala> val arr = Array(1,2,3,4,5,6)
for(i<- arr)println(i*10)
for(i<- 0 until arr.length)println(arr(i)*10)
另一种的方法:
scala> for (i <- arr) yield i*10
scala> arr.map(_ * 10)
scala> arr.map(x => x *10)
for(i<- arr if i%2 ==0)println(i*100)
for(i<- 0 until arr.length if arr(i)%2==0)println(arr(i)*100)
简便的方法:
scala> for (i <- arr if i%2==0) yield i*100
scala> arr.filter(m => m%2==0).map(n => n*100)
- while循环
var n = 10
while(n > 0) {
println(n)
n -= 1
}
验证:
9.do while循环
至少被执行一次。
var n =1
do{
println(n)
n+=2
}while(n<10)
验证:
10.操作符重载
scala> val a = 1.+(2)
scala> def +(x : Int,y : Int):Int = { x + y }
scala> $plus(10,30)