1.for/yield
和foreach
循环
基本用法不再赘述
val a = Array("apple","banana")
for((e,count) <- a.zipWithIndex){
println(s"$count is &e")
}
0 is apple
1 is banana
#
生成器range
卫语句if
#
遍历一个Map
val names = Map("fname"->"ya","lname"->"fang")
for((k,v)<-names)println(s"key:$k,valus:$v")
key:fname,valus:ya
key:lname,valus:fang
2.在for循环中使用多个计数器
for{
i <- 1 to 2
j <- 1 to 2
}println(s"i:$i,j:$j")
i:1,j:1
i:1,j:2
i:2,j:1
i:2,j:2
3.创建for表达式
val a = Array("chris","zed")
val s = for(i <- a)yield i.capitalize
val s = a.map(c=>c.capitalize)
Array("Chris","Zed")
Array("Chris","Zed")
4.实现break
import util.control.Breaks._
breakable{
for(i <- 1 to 10){
println(i)
if(i>4)break
}
}
1
2
3
4
5
val s = "abcdef"
breakable{
for(i <- s){
println(i)
if(i == 'd')break
<!--break the for loop-->
}
}
a
b
c
d
for(i <- s){
breakable{
if(i == 'd')break
println(i)
}
println("1")
}
a
1
b
1
c
1
1
e
1
f
1
5.匹配表达式
def getClassAsString(x:Any):String=x match{
case 1 =>"1"
case 2 =>"2"
case _ =>"3"
}
getClassAsString(2)
2
一条case匹配多个条件
val i = 5
i match{
case 1|3|5|7=>println("odd")
case 2|4|6|8=>println("even")
}
odd