scala 语句
scala 语句默认就是一行,要是一行里面多行就用分号等隔开。
块表达式,指的是 {} 中的值,其中可以包含多条语句, 最后一个语句的值就是快表达式的值。
Scala 输入输出
可以直接使用 Java 的 System.out.println 这一类,也可以直接使用 println 和 print ,格式化输出可以使用 printf。
readLine 允许我们从控制带读取用户输入的数据,类似 Scanner 和 System.in 的作用。
循环
while do 循环使用和 Java 中一样。
for 循环不支持类似这种
代码语言:javascript复制for (int i = 0; i < n; i )
但是可以这个样子:
代码语言:javascript复制var n = 10
for(i <- 1 to n )println(i " ")
使用 until 可表示不达到上限,如下输出为 1 - 9。
代码语言:javascript复制var n = 10
for (i <- 1 until n) println(i)
还可以直接遍历字符串,比如:
代码语言:javascript复制for (c <- "Hello World")println(c)
输出结果就是每个字符都是一行。
跳出循环语句:scala 里面没有 break,使用 boolean 类型变量或者 return 或者 Breaks 的 break 函数来代替。
多重 for 循环:
代码语言:javascript复制for (i <- 1 to 9 ; j <- 1 to 9)
if 守卫:
代码语言:javascript复制for (i <- 1 to 10 if i % 2 == 0) print(i)
for 推导式:
代码语言:javascript复制for (i <- 10) yield i
推导式会将这个东西构造成集合。
scala 函数
scala 既可以面向对象又可以面向语言。
定义函数用 def 开头,和 python 差不多.
代码语言:javascript复制 def getName(name:String) = {
函数内容
}
没有等于号默认没有返回值。
代码最后一行的返回值就是函数的返回值,不适用 return。
如果在函数体内递归调用函数体,则必须手动给出函数的返回类型。
如果我们调用时不给出参数的具体值,使用自身的默认值,就需要在定义函数时就定义,这样子传递参数的时候就可以不传这个。
在调用函数的时候,可以不按照函数定义的参数顺序来传递参数,使用带名参数的方式来传递。
当然还可以混合使用,但是未命名参数必须要填写在前面。
函数的变长参数
scala 中可能需要将函数定义的参数个数为可变的形式,此时需要使用变长参数。
要是有返回值一定要有 = 。