第二章 scala入门初探

最后更新于:2022-04-01 20:15:35

**注意**:Scala中,表达式后的分号可以省去(多个表达式写在同一行则还是需要分号的),但是Scala源码中都是带分号的,所以建议保留分号 - 使用Scala解释器 - 在Scala解释器中键入代码块可以采用命令::paste,以CTRL+D结束; - 变量定义 - var声明的变量,可以在生命周期中被多次赋值 ; - val声明的变量,类似Java中final变量,一旦初始化,就不能再被赋值; - 变量最好写明类型,这会有便于之后的代码阅读(虽然Scala中有类型推断机制); - 函数定义 - 定义函数用关键字def - 函数名 - 参数列表,其中每个参数都必须带有前缀冒号的类型标注(编译器无法推断函数的参数类型) - 函数结果类型,例如(: Int) - 函数体,放在{}内 ~~~ def max(x: Int, y: Int): Int = { if(x > y) { x; } else { y; } } ~~~ - 脚本 使用命令scala可以编译.scala文件; 命令行参数存放在名为args的Scala数组里,用args(0)访问第一个元素; - while做循环,if做判断 ~~~ var i = 0; while(i < args.length) { if(i != 0) { print(" "); }//(个人习惯)在代码块仅有一行语句时也用{} println(args(i)); i += 1; } println(); ~~~ - foreach和for做枚举 - 用foreach可以更简洁的打印每个命令行参数,这是一种更为函数式的编程风格。 以下三种写法都表达同一个意思: - 第三种最简明的写法的条件是:函数字面量只有一行语句并指代一个参数,那么可以将指代参数省去。 ` args.foreach(arg => println(arg)); args.foreach((arg: String) => println(arg)); args.foreach(println); ` - 函数自面量: 1. 括号及命名参数列表 (x: Int, y: Int) 1. 右箭头 => 1. 函数体 x + y; 用for也可以写出简明的代码: ~~~ for(arg <- args) { println(arg); } ~~~
';