分享

scala如何ruturn程序

nike1972 发表于 2016-8-25 22:42:45 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 9964
在java中,如果我需要将整个程序提前结束,可以使用return语句来实现,而在scala中如果想实现相同的功能,应该如何实现,难道函数式编程就不能实现整个功能么?

已有(2)人评论

跳转到指定楼层
easthome001 发表于 2016-8-26 06:58:44
Scala不建议使用return,Scala中将最后出现的变量作为return的值。如果强制使用return会使Scala性能严重下降。

推荐参考
Scala 不建议用 return的原因是什么?
http://www.aboutyun.com/forum.php?mod=viewthread&tid=19625


回复

使用道具 举报

NEOGX 发表于 2016-8-26 07:04:19
如果循环可以使用break。不过是在 Scala 2.8 版本后

语法
Scala 中 break 的语法有点不大一样,格式如下:
// 导入以下包
import scala.util.control._

// 创建 Breaks 对象
val loop = new Breaks;

// 在 breakable 中循环
loop.breakable{
    // 循环
    for(...){
       ....
       // 循环中断
       loop.break;
   }
}



实例
[mw_shl_code=scala,true]import scala.util.control._

object Test {
   def main(args: Array[String]) {
      var a = 0;
      val numList = List(1,2,3,4,5,6,7,8,9,10);

      val loop = new Breaks;
      loop.breakable {
         for( a <- numList){
            println( "Value of a: " + a );
            if( a == 4 ){
               loop.break;
            }
         }
      }
      println( "After the loop" );
   }
}
[/mw_shl_code]



中断嵌套循环
以下实例演示了如何中断嵌套循环:

[mw_shl_code=scala,true]import scala.util.control._

object Test {
   def main(args: Array[String]) {
      var a = 0;
      var b = 0;
      val numList1 = List(1,2,3,4,5);
      val numList2 = List(11,12,13);

      val outer = new Breaks;
      val inner = new Breaks;

      outer.breakable {
         for( a <- numList1){
            println( "Value of a: " + a );
            inner.breakable {
               for( b <- numList2){
                  println( "Value of b: " + b );
                  if( b == 12 ){
                     inner.break;
                  }
               }
            } // 内嵌循环中断
         }
      } // 外部循环中断
   }
}[/mw_shl_code]










回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条