|
Scala example source code file (Breaks.scala)
The Scala Breaks.scala source code/* __ *\ ** ________ ___ / / ___ Scala API ** ** / __/ __// _ | / / / _ | (c) 2003-2011, LAMP/EPFL ** ** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** ** /____/\___/_/ |_/____/_/ | | ** ** |/ ** \* */ package scala.util.control /** A class that can be instantiated for the break control abstraction. * Example usage:<pre> * * val mybreaks = new Breaks * import</b> mybreaks.{break, breakable} * * breakable { * <b>for (...) { * <b>if (...) break * } * }</pre> * * Calls to break from one instantiation of Breaks will never * target breakable objects of some other instantion. */ class Breaks { private val breakException = new BreakControl /** A block from which one can exit with a `break''. */ def breakable(op: => Unit) { try { op } catch { case ex: BreakControl => if (ex ne breakException) throw ex } } trait TryBlock { def catchBreak(onBreak: => Unit): Unit } def tryBreakable(op: => Unit) = new TryBlock { def catchBreak(onBreak: => Unit) = try { op } catch { case ex: BreakControl => if (ex ne breakException) throw ex onBreak } } /* Break from dynamically closest enclosing breakable block * @note this might be different than the statically closest enclosing * block! */ def break() { throw breakException } } /** An object that can be used for the break control abstraction. * Example usage:<pre> * * <b>import Breaks.{break, breakable} * * breakable { * <b>for (...) { * <b>if (...) break * } * }</pre> * */ object Breaks extends Breaks private class BreakControl extends ControlThrowable Other Scala examples (source code examples)Here is a short list of links related to this Scala Breaks.scala source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.