美文网首页程序员我爱编程
锱铢必较:编写更优雅的代码——java中用break语句模拟go

锱铢必较:编写更优雅的代码——java中用break语句模拟go

作者: 大神带我来搬砖 | 来源:发表于2018-03-24 19:17 被阅读278次

    有一次遇到一个问题,需要按各种条件初始化一些不同类型的变量。

      a = 0
      b = "bar"
      c = true
      计算条件1
      if (条件1){
       a = 1
      }else{
        计算条件2
        if (条件2){
          b = "foo"
        }else{
          计算条件3
          if (条件3){
            c = false
          }
        }
      }
    
    

    现在代码看上去嵌套层数很多,不美观。
    其实可以用return (a,b,c)的方式直接终止,但是java里没有返回tuple的能力,需要引入其他类库;要不就要返回一个object类型的数组,也觉得不美观。
    后来发现了java break的新用法,根据https://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html,java的break语句不仅可以跳出循环,还可以中止label标记的代码块。

    可以利用label对代码块block进行标记,然后用break中止,这下嵌套少了很多,妈妈再也不用担心写出不优雅的代码啦!!

    a = 0
    b = "bar"
    c = true
    init:{
      计算条件1
      if (条件1){
        a = 1
        break init;
      }
      计算条件2
      if (条件2){
        b = "bar"
        break init;
      }
      计算条件3
      if (条件3){
        c = true
        break init;
      }
    }
    

    相关文章

      网友评论

        本文标题:锱铢必较:编写更优雅的代码——java中用break语句模拟go

        本文链接:https://www.haomeiwen.com/subject/hrtccftx.html