gpt4 book ai didi

scala - 为什么 Scala 2.8+ 中没有 'break with value'?

转载 作者:行者123 更新时间:2023-12-02 00:07:48 26 4
gpt4 key购买 nike

这是精彩 SO 答案的衍生产品: How do I break out of a loop in Scala?

为什么 Scala 2.8+ 不允许使用值中断,而该值将成为 breakable 部分的值?这通常很实用。

var r= rnd.nextInt(sum)

breakable {
for( (n,st) <- arr ) {
if (r<n) break(st)
} else {
r -= n
}
}

而不是(将 var 与现有库一起使用):

var r= rnd.nextInt(sum)
var dest: Station = null

breakable {
for( (n,st) <- arr ) {
if (r<n) { dest=st; break }
} else {
r -= n
}
}
dest

我自己可以提供这样的功能,但只是想知道。

中断文档在这里:http://www.scala-lang.org/api/current/index.html#scala.util.control.Breaks

最佳答案

与简单地创建 def 相比,它的优势微乎其微。

def breaking: Station = {
for ( (n,st) <- arr ) {
if (r < n) return st
else r -= n
}
defaultStation
}
breaking

(当然,我确实在我的工具集中有一个实现,但我并不经常使用它。)

关于scala - 为什么 Scala 2.8+ 中没有 'break with value'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17290248/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com