第二章 控制结构和函数(快学scala)
1.条件表达式
1)scala中 if/else表达式有值
例:
var x=1
if (x>0) 1 else -1
2)scala中有混合类型的表达式
if (x>0) "positive" else -1
上述表达式的类型是公共超类型 ,Any
3)esle部分缺失(每个表达式都应该有某种值)
if (x>0) 1
引入一个Unit类,写作()
等价于
if (x>0) 1 else ()
4)REPL的近视if (x>0) 1
else if (x==0) 0 else -1
会立刻执行第一行代码,下面的esle if 会报错
要运行整块代码,有两种方法:
first :花括号
if (x>0){1
} else if(x==0) 0 else -1
second:用:paste
把代码块粘贴进去,按下Ctrl+D;
5)print和println ,后者会追加一个换行符
6)for循环
for(i <-表达式)
for(i<-1 to n)
r=r*i
until方法返回一个不包含上限的区间
val s="hello"
var sum=0
for (i<0 until s.length)
sum+=s(i)
7)高级for循环和for推导式
for(i<-1 to 3;j<-1 to 3 if i!=j) print {(10*i+j)+" "}
插播一条:两个服务器之间传递文件,检查上传的文件是否一致用md5
$ md5sum 文件名>文件名.md5
$cat 文件名.md5
8)函数
变长参数
def sum(args:Int*){
var result=0
for(arg<-args) result+=arg
result
}
val s=sum(1,4,9,16,25)
val s=sum(1 to 5:_*) //1 to 5当作参数序列处理