您的位置 首页 java

scala 如何实现break/continue的

scala 语法中没有像 java 一样通过 break 和continue 关键字实现循环中断,为了更好地实现函数式思想,可以通过break()和breakable函数实现同样的功能。

break实现,拿例子说话

 def main(args: Array[String]): Unit = {
    Breaks.breakable{
      for(i <- 1 to(10) if i%2==0 ) {
        println(i)
        Breaks.break()
      }
    }
    println("ok~")
  }

  //源码
  def break(): Nothing = { throw breakException }
  def breakable(op: => Unit) {
    try {
      op
    } catch {
      case ex: BreakControl =>
        if (ex ne breakException) throw ex
    }
  }
break()函数其实就只是抛出了个 breakException 异常,
而breakable 函数接受的是一个没有参数和没有返回值的代码块,同时捕获 breakException 异常


    

continue 如何实现的呢

 //通过守卫实现

  def main(args: Array[String]): Unit = {
    for (i<- 1 to 10 if(i !=4 && i!=7)) {
      println(i)
    }
  }
// 改写成if-else 的实现方式
  def main(args: Array[String]): Unit = {
    for (i <- 1 to 10) {
      if (i != 4 && i != 7) println(i)
    }
  }
  
    

超超超级基础记知识,没事儿记个小笔记

文章来源:智云一二三科技

文章标题:scala 如何实现break/continue的

文章地址:https://www.zhihuclub.com/195356.shtml

关于作者: 智云科技

热门文章

网站地图