用法 一
class Breaks
提供break
控製抽象.
break
方法使用 ControlThrowable
將控製權轉移到堆棧到封閉的 breakable
。
它通常用於突然終止 for
循環,但可用於從任意計算返回。
控製在 breakable
之後恢複。
如果沒有匹配的 breakable
,則 break
拋出的 BreakControl
以通常的方式處理:如果沒有被捕獲,它可能會終止當前的 Thread
。
BreakControl
不攜帶堆棧跟蹤,因此默認異常處理程序不會打印有用的診斷信息;如果沒有匹配的 breakable
,則沒有編譯時警告。
使用 NonFatal
的 catch 子句與 break
一起使用是安全的;它不會將控製權轉移到封閉的 breakable
。
如果方法是在同一個接收器對象上調用的,那麽 breakable
匹配對 break
的調用,這可能是便利值 Breaks
。
示例用法:
val mybreaks = new Breaks
import mybreaks.{break, breakable}
breakable {
for (x <- xs) {
if (done) break()
f(x)
}
}
從Breaks
的一個實例對break
的調用將永遠不會在其他實例的breakable
處恢複。
任何介入的異常處理程序都應使用 NonFatal
,或使用 Try
進行評估:
val mybreaks = new Breaks
import mybreaks.{break, breakable}
breakable {
for (x <- xs) Try { if (quit) break else f(x) }.foreach(println)
}
伴生:
- object
源碼:
- Breaks.scala
用法 二
object Breaks extends Breaks
可用於中斷控製抽象的對象。
示例用法:
import Breaks.{break, breakable}
breakable {
for (...) {
if (...) break
}
}
伴生:
- class
源碼:
- Breaks.scala
相關用法
- Scala control.Exception用法及代碼示例
- Scala control.NonFatal用法及代碼示例
- Scala control.ControlThrowable用法及代碼示例
- Scala control.TailCalls用法及代碼示例
- Scala convert.ImplicitConversions用法及代碼示例
- Scala concurrent.Future用法及代碼示例
- Scala concurrent.BlockContext用法及代碼示例
- Scala compiletime.summonFrom用法及代碼示例
- Scala collection.Iterator用法及代碼示例
- Scala compiletime.error用法及代碼示例
- Scala collection.IterableOnce用法及代碼示例
- Scala compiletime.erasedValue用法及代碼示例
- Scala compiletime.codeOf用法及代碼示例
- Scala compiletime.uninitialized用法及代碼示例
- Scala collection.JavaConverters用法及代碼示例
- Scala compiletime.requireConst用法及代碼示例
- Scala Tabulate.sliding用法及代碼示例
- Scala ArrayBuffer.inits用法及代碼示例
- Scala long.BitwiseOr用法及代碼示例
- Scala StringBuilder.partitionMap用法及代碼示例
- Scala List distinct()用法及代碼示例
- Scala DefaultMap.sizeIs用法及代碼示例
- Scala StrictOptimizedIterableOps.sliding用法及代碼示例
- Scala Searching.SearchResult用法及代碼示例
- Scala ::.collectFirst用法及代碼示例
注:本文由純淨天空篩選整理自scala-lang.org大神的英文原創作品 control.Breaks。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。