• Scala:没有continue,break怎么办?


    scala自身是没有continue,break这两个语法关键词的。

    但是实际上我们还是很希望有这两个语法,那么我们是否可以自己实现呢?

    • 从官网上搜索,我们可以找到一下关于break的类相关资料:

    Breaks extends AnyRef

    A class that can be instantiated for the break control abstraction. Example usage:

    val mybreaks = new Breaks
    import mybreaks.{break, breakable}
    
    breakable {
      for (...) {
        if (...) break()
      }
    }
    

    Calls to break from one instantiation of Breaks will never target breakable objects of some other instantiation.

    • continue测试:
    import util.control.Breaks._
    
    /**
      * Created by Administrator on 2016/11/15.
      */
    object MyMain {
      def main(args: Array[String]): Unit = {
        println("Hello World")
    
        for (index <- 1 to 10) {
          breakable {
            if (index == 6) {
              println("the index is :"+index)
              break()
            }
            else {
              println("hello" + index)
            }
          }
        }
      }
    }
    

     输出结果
    Hello World
    hello1
    hello2
    hello3
    hello4
    hello5
    the index is :6
    hello7
    hello8
    hello9
    hello10

    Process finished with exit code 0

    • break测试:
    import util.control.Breaks._
    
    /**
      * Created by Administrator on 2016/11/15.
      */
    object MyMain {
      def main(args: Array[String]): Unit = {
        println("Hello World")
        breakable {
          for (index <- 1 to 10) {
            if (index == 6) {
              println("the index is :" + index)
              break()
            }
            else {
              println("hello" + index)
            }
          }
        }
      }
    }
    

     或者

    import util.control.Breaks._
    
    /**
      * Created by Administrator on 2016/11/15.
      */
    object MyMain {
      def main(args: Array[String]): Unit = {
        println("Hello World")
        for (index <- 1 to 10) {
          if (index == 6) {
            println("the index is :" + index)
            break
          }
          else {
            println("hello" + index)
          }
        }
      }
    }
    

     输出结果

    Hello World
    hello1
    hello2
    hello3
    hello4
    hello5
    the index is :6

    参考资料:scala break & continue http://www.cnblogs.com/rollenholt/p/4119105.html

  • 相关阅读:
    ImportError: No module named MySQLdb 解决方案
    Python在函数中使用*和**接收元组和列表
    ADB故障时的一些命令
    WebBrowser网页操作之提取获取元素和标签(完整篇)
    单台服务器并发百万级配置(转)
    高并发高负载的大型网站系统架构(转)
    系统架构师的九种能力
    一个操作oracle的c#类 含分页
    我们应该如何做需求分析(转)
    怎样查看oracle当前的连接数
  • 原文地址:https://www.cnblogs.com/yy3b2007com/p/6079688.html
Copyright © 2020-2023  润新知