scala--for循环:break

在scala里,是没有break关键字的,但有时候我们想在循环里跳出,改怎么办呢?很简单,自己实现一个break功能。主要是通过捕获异常实现的

首先,为了更好的控制,定义一个异常类:

    /*简单起见,只继承Exception*/
    class BreakException() extends Exception

然后定义break“关键字”,不是真的关键字,只是一个函数而已:

    /*如果一个方法抛出异常,则异常的返回值就是Nothing*/
    def break(): Nothing = { throw new BreakException() }

    def breakable (fn :  => Unit): Unit = {
        try {
            fn
        } catch {
            case ex: BreakException => println("catch my exception. do nothing: " + ex.toString)
            case ex: Exception => println("other exception: " + ex.toString)
        }
    }

使用就很简单了:

    def run = {
        breakable {
            for (i <- 0 until 10) {
                if (i == 5) break
                else println(i)
            }
        }
    }

不得不说,scala很强大,很多想不到的功能都可以实现,总之,都归功于函数式编程。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 读《快学Scala 》一书的摘要 Scala 运行于JVM之上,拥有海量类库和工具,兼顾函数式编程和面向对象。 在...
    abel_cao阅读 1,320评论 0 8
  • 1. 特点: Scala是一门多范式编程语言,集成了面向对象编程和函数式编程等多种特性。 Scala运行在虚拟机上...
    EmmaQin阅读 1,364评论 0 0
  • scala文档 包含内容 1基础 2控制结构和函数 3数组相关操作 4映射和元组 5类 6对象 7.包和引入(x)...
    zlcook阅读 1,027评论 0 3
  • Scala编程语言 1.生态: (1)scala编程语言 (2)Spark Core : Spark内核 ,最重要...
    Movle阅读 790评论 0 3
  • 本文是对Scala语言的基本语法的一个学习总结,共包括如下章节: 基本元素 结构化语句 数据类型 小结 参考资料:...
    我是老薛阅读 995评论 0 3