當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Scala control.Breaks用法及代碼示例


用法 一

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-lang.org大神的英文原創作品 control.Breaks。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。