logo头像
Snippet 博客主题

Scala-For循环

比Java强大得多的for循环


基本用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// to包含右边界
for (i <- 1 to 10) {
println(i)
}

// until不包含右边界
for (i <- 1 until 10) {
println(i)
}

// 函数式
(1 to 10).foreach { i =>
println(i)
}

// 同时循环
for (i <- 1 to 3; j <- 1 to 3) {
println(s"i: ${i}, j: ${j}")
}
i: 1, j: 1
i: 1, j: 2
i: 1, j: 3
i: 2, j: 1
i: 2, j: 2
i: 2, j: 3
i: 3, j: 1
i: 3, j: 2
i: 3, j: 3

守卫

循环的过程中可以直接加if开头的Boolean表达式

1
2
3
4
5
6
7
8
for (i <- 1 until 10 if i%2 == 0) {
println(i)
}

2
4
6
8

推导式

以yield开始的for循环会构造出一个集合

1
2
3
4
val ret = for (i <- 1 to 10) yield i % 3
println(ret)

结果: Vector(1, 2, 0, 1, 2, 0, 1, 2, 0, 1)

评论系统未开启,无法评论!