1. var temp = List("Hello",1) 可以保存了不同类型的原因 : 类型推断 List[Any] = List(Hello,1)
2. 使用Nil 创建空列表List
3.可变集合( mutable )和不可变集合(immutable )
scala的集合系统的区分了可变( mutable )和不可变(immutable )集合。
不可变(immutable )集合 的元素和长度 不可改变
定长数组【Array】指的是数组的长度是不允许改变的
一个mutable 集合能够更新甚至扩展空间,这意味着你能改变,增加,或者删除一个集合的元素。
一个immutable集合,刚好相反,不能改变。你仍然可以做一些类似的增加,删除,或者更新,但是实际上(跟java的string一样)他返回了一个新的对象,这里面就是指返回了一个新的集合,而老的集合没有改变。
在自己开发的过程中,一般度使用可变的
在调用一些框架的 api中,返回值一般都是返回不可变的
4.函数的参数列表可以省略的情况: 参数只使用一次,且没嵌套使用 .如 x=>print(x) 省略为 print(_)
val list = List(1, 2, 3, 4)
list.map(num => "*" * num).foreach(println)
// 因为此处num变量只使用了一次,而且只是进行简单的计算,所以可以省略参数列表,使用_替代参数
list.map("*" * _).foreach(println)
5.scala 支持方法的嵌套
def factorial(x: Int): Int = {
def fact(x: Int, accumulator: Int): Int = {
if (x <= 1) accumulator
else fact(x - 1, x * accumulator)
}
fact(x, 1)
}
println("Factorial of 2: " + factorial(2))
println("Factorial of 3: " + factorial(3))
程序的输出为:
Factorial of 2: 2
Factorial of 3: 6
转载:https://blog.csdn.net/wz_TXWY/article/details/100920611
查看评论