小言_互联网的博客

scala 补充知识

383人阅读  评论(0)

 

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
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场