【Scala笔记——道】Scala 循环遍历 for详解

本文详细介绍了Scala的for循环,包括基本使用、生成器表达式、保护式,并探讨其原理,强调了Scala中for循环实际上是对foreach的语法糖。文章还提到在Scala中,推荐使用`list.foreach`形式的for循环,以及如何通过filter、map等进行循环控制,并提到了foldLeft和foldRight在有上下文影响的循环中的作用。
摘要由CSDN通过智能技术生成

Scala for循环

基本使用

增强型for循环

scala基本for循环如下,代码将names遍历并打印包含的名字。


val names = Seq("Kitty", "Tom", "Luke", "Kit")


for (name <- names) {

  println(name)
}

相较Java,语法层面来看只是将 :换成<-。实际上由于Scala已经将:用于类型定义,这里使用:会造成二义性,scala这里使用<-用于循环语义。

生成器表达式

在Java中循环经常会用到数值递增/递减,例如for(int i = 0, i < 10, i++)

scala中不提供类似的语法结构,与之对应的是提供了 生成器表达式(Generator Expression),之所以叫这个名字,是因为该表达式会基于集合生成单独的数值。左箭头操作符(<-) 用于对像列表这样的集合进行遍历。

for (i <- 1 to 10) println(i)

不同于Java循环中数值操作,Scala取而代之的是提供了Range类型
持 Range 的 类 型 包 括 Int 、 Long 、 Float 、 Double 、 Char 、BigInt和 BigDecimal

具体示例如下

1 to 10                   // Int类型的Range,包括区间上限,步长为1 (从1到10)
1 until 10                // Int类型的Range,不包括区间上限,步长为1 (从1到9)
1 to 10 by 3              // Int类型的Range,包括区间上限,步长为3
10 to 1 by -3             // Int类型的递减Range,包括区间下限,步长为-3
1.1f to 10.3f by 3.1f     // F
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值