1.scala变量的定义
var【variable】可以他的引用地址
val【value】不可以改变引用地址,相当于java中用final修饰的变量
2.scala数据类型
scala中,没有包装类,基本类型首字母都大写
3.scala的if判断
if(x > 0) 100 else -100
val r: Any = if(x > 0) 100 else "error"
4.scala的for循环
for(i <- arr) println(i)
for(i <- 1 to 3; j <- 1 to 3; if i != j) println(i * 10 + j)
5.for循环结合yield关键字
for(i <- 1 to 10 if i % 2 == 0) yield i * 100
6.scala方法的定义
def【define】
def m1(x: Int, y: Double): Double = {x + y}
def m2(): Unit = {println("hello")}
def m2() {println("hello")}
7.方法的调用,a 方法 b 等价于 a.方法(b)
定义在object中的方法,object的名字.方法名,调用这个方法和该方法在同一个object中,可以把object的名字省略
1 to 10 等价于 1.to(10)
1 + 10 等价于 1.+(10)
8.scala的数组【一旦定义,长度不能改变,但是数组中的内容可以改变】
val arr = Array(1,2,3,4,5)
取值 arr(0) //返回1
赋值 arr(0) = 100
9.scala的可变数组ArrayBuffer
val ab = new ArrayBuffer[Int](8) //8个长度的数组
追加元素 +=
移除元素 -=
追加多个元素 ++=
10.不可变set和可变set
val s1 = new HashSet[Int] //导入可变的set
s1.contains(8) //ture或false 等价于 s1(8)
s1 += 7
s1 -= 8
s1 ++= Set(9,10,10)
11.不可变map和可变map
val m = new HashMap[String, Int] //定义一个可变的map
//追加元素
m.put("a", 1)
m("b") = 2
m += ("c" -> 3)
m += (("d", 4))
//移除元素
m.remove("c")
m -= c
12.不可变List和可变ListBuffer
不可变的的List
val lst = List(1,2,3,4,5)
lst :+ 6 // 新的List, List(1,2,3,4,5,6)原来的List没有改变
总结:
数组:一旦定义,长度不能改变,但是数组中的内容可以改变
scala的不可变集合,长度和内容都不可以改变
scala的可变集合,长度和内容都可以改变,可变集合在原来基础追加一个元素+=,移除一个元素-=,追加多元素++=