Это спин-офф замечательного SO ответа здесь: How do I break out of a loop in Scala?Почему нет «перерыва со значением» в Scala 2.8+?
Почему 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
Что бы типы быть? Я мог видеть, что он работает, если у вас есть «breakable {break => ...}» (в этом случае он просто выглядит как callCC'), но с вашим предложением я не вижу ничего, связывающего параметр, который вы передаете 'break', в котором он живет. –