<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                在Java、C語言中,return語句使我們再常見不過的了。雖然在Scala,Groovy這樣的語言中,函數的返回值可以不需要顯示用return來指定,但是我們仍然認為,使用return的編碼風格更加容易閱讀理解。 在Kotlin中,除了表達式的值,有返回值的函數都要求顯式使用 return 來返回其值。 ~~~ fun main(args: Array<String>) { println(sum(1,2))//3 println(max(1,2))//2 println(sum2(1,2))//3 println(max2(1,2))//2 println(sumf(1,2))//() -> kotlin.Int println(maxf(1,2))//() -> kotlin.Int println(sumf(1,2).invoke())//3 println(maxf(1,2).invoke())//2 } fun sum(a:Int , b:Int):Int{ return a + b } fun max(a:Int,b: Int):Int{ if (a > b) return a else return b } //在Kotlin中,可以直接使用 = 符號來直接返回一個函數的值。 fun sum2(a: Int,b: Int) = a+b fun max2(a: Int,b: Int) = if (a>b) a else b //后面的函數體語句有沒有大括號 {} 意思完全不同。加了大括號,意義就完全不一樣了。 fun sumf(a: Int,b: Int) ={ a + b } fun maxf(a:Int, b:Int) = {if(a>b) a else b} ~~~ 從上面的代碼以及返回值可以看出后面的函數體語句有沒有大括號 {} 意思完全不同。加了大括號,意義就完全不一樣了:sumf , maxf 的返回值是函數類型: ``` () -> kotlin.Int () -> kotlin.Int ``` #### Lambda表達式中的return kotlin 中 return 語句會從最近的函數或匿名函數中返回,但是在Lambda表達式中遇到return,則直接返回最近的外層函數。 示例 ~~~ fun main(args: Array<String>) { returnDemo_1() returnDemo_2() } fun returnDemo_1() { println(" START " + ::returnDemo_1.name) val intArray = intArrayOf(1, 2, 3, 4, 5) intArray.forEach { if (it == 3) return println(it) } println(" END " + ::returnDemo_2.name) } fun returnDemo_2() { println(" START " + ::returnDemo_2.name) val intArray = intArrayOf(1, 2, 3, 4, 5) intArray.forEach(fun(a: Int) { if (a == 3) return println(a) }) println(" END " + ::returnDemo_2.name) } ~~~ 運行結果 ``` START returnDemo_1 1 2 START returnDemo_2 1 2 4 5 END returnDemo_2 Process finished with exit code 0 ``` returnDemo_1 在遇到 3 時會直接返回(有點類似循環體中的 break 行為)。最后輸出 ``` 1 2 ``` returnDemo_2 遇到 3 時會跳過它繼續執行(有點類似循環體中的 continue 行為)。最后輸出 ``` 1 2 4 5 ``` 在 returnDemo_2 中,我們用一個匿名函數替代 lambda 表達式。 匿名函數內部的 return 語句將從該匿名函數自身返回。 在Kotlin中,這是匿名函數和 lambda 表達式行為不一致的地方。當然,為了顯式的指明 return返回的地址,為此 kotlin 還提供了 @Label (標簽) 來控制返回語句,且看下節分解。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看