scala中的for

scala中 ‘<-’ 与 for

for (i <- 1 to 3; from = 4 - i; j <- from to 3) {
  println((10 * i + j));
  println(from);
}

执行结果如下
13
3
22
2
23
2
31
1
32
1
33
1

​ 从执行结果中可以看出,for在做笛卡尔积,简单来说就是前面的每一个要对应后面的全部,赋值语句被当作只有一个,以‘;’为界,从前向后依次对应
<-总是被当成小于负的xxx,很奇怪的发明,感觉好像用in更好。

for (c <- "Hello"; i <- 0 to 1) yield (c + i).toChar
for (i <- 0 to 1; c <- "Hello") yield (c + i).toChar

"a"+1
1+"a"

执行结果如下
res8: String = HIeflmlmop
res9: scala.collection.immutable.IndexedSeq[Char] = Vector(H, e, l, l, o, I, f, m, m, p)

res10: String = a1
res11: String = 1a

for推导式当存在2个遍历对象时,如同外层循环套着内层循环,yield似乎只注重最外圈的循环,并试图与最外圈的循环类型保持一致

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值