Scala for
Scala for循环
在 Scala 中,
for 循环 被称为 for 推导式。它可用于迭代、过滤和返回迭代集合。 for-comprehension 看起来有点像命令式语言中的 for 循环,只不过它构造了一个所有迭代结果的列表。
语法
for( i <-range){
// statements to be executed
}
在上面的语法中,范围是一个具有
开始和
结束点的值。您可以使用 to 或 until 关键字传递范围。
使用 to 关键字的 Scala for 循环示例
object MainObject {
def main(args: Array[String]) {
for( a <-1 to 10 ){
println(a);
}
}
}
输出:
在下面的示例中,使用
until 代替
to。
until 和
to 之间的主要区别在于,
to 包括范围内给定的开始和结束值,而
until排除范围的最后一个值。因此,下面的示例将仅打印 1 到 9、
使用 until 关键字的 Scala for-loop 示例
object MainObject {
def main(args: Array[String]) {
for( a <-1 until 10 ){
println(a);
}
}
}
输出:
在迭代字符串或数组时使用
until 关键字很有帮助,因为数组范围是 0 到 n-1、
直到不超过n-1、因此,您的代码不会抱怨范围上限。
Scala for 循环过滤示例
您可以使用
for 来过滤您的数据。在下面的示例中,我们通过传递条件表达式来过滤数据。此程序仅打印给定范围内的偶数值。
object MainObject {
def main(args: Array[String]) {
for( a <-1 to 10 if a%2==0 ){
println(a);
}
}
}
输出:
使用 yield 关键字的 Scala for-loop 示例
在上面的示例中,我们使用了
yield完成循环迭代后返回结果的关键字。 for 在内部使用缓冲区来存储迭代结果,并在完成所有迭代后从该缓冲区产生最终结果。它不像命令式循环那样工作。
object MainObject {
def main(args: Array[String]) {
var result = for( a <-1 to 10) yield a
for(i<-result){
println(i)
}
}
}
输出:
集合中的 Scala for 循环
在 Scala 中,您可以使用 for 每个循环或 for-comprehension 来迭代列表、序列等集合。
来看一个例子。
迭代集合的Scala for-loop例子
object MainObject {
def main(args: Array[String]) {
var list = List(1,2,3,4,5,6,7,8,9) // Creating a list
for( i <-list){ // Iterating the list
println(i)
}
}
}
输出:
Scala for-each 循环迭代集合的示例
在下面的代码中,我们使用了三种 for-each 循环方法。您可以根据需要实施其中任何一项。
object MainObject {
def main(args: Array[String]) {
var list = List(1,2,3,4,5,6,7,8,9) // Creating a list
list.foreach{
println // Print each element
}
list.foreach(print)
println
list.foreach((element:Int)=>print(element+" ")) // Explicitly mentioning type of elements
}
}
输出:
1
2
3
4
5
6
7
8
9
123456789
1 2 3 4 5 6 7 8 9
使用by关键字的Scala for循环示例
在上面的示例中,我们使用了
by关键字.
by 关键字用于跳过迭代。当你像这样编码时: by 2 意味着,这个循环将跳过循环的所有偶数迭代。
object MainObject {
def main(args: Array[String]) {
for(i<-1 to 10 by 2){
println(i)
}
}
}
输出: