<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## Lambda表達式 Lambda 表達式是使用**最小可能**語法編寫的函數定義: 1. Lambda 表達式產生函數,而不是類。 在 JVM(Java Virtual Machine,Java 虛擬機)上,一切都是一個類,因此在幕后執行各種操作使 Lambda 看起來像函數 —— 但作為程序員,你可以高興地假裝它們“只是函數”。 2. Lambda 語法盡可能少,這正是為了使 Lambda 易于編寫和使用。 我們在**Strategize.java**中看到了一個 Lambda 表達式,但還有其他語法變體: ~~~java // functional/LambdaExpressions.java interface Description { String brief(); } interface Body { String detailed(String head); } interface Multi { String twoArg(String head, Double d); } public class LambdaExpressions { static Body bod = h -> h + " No Parens!"; // [1] static Body bod2 = (h) -> h + " More details"; // [2] static Description desc = () -> "Short info"; // [3] static Multi mult = (h, n) -> h + n; // [4] static Description moreLines = () -> { // [5] System.out.println("moreLines()"); return "from moreLines()"; }; public static void main(String[] args) { System.out.println(bod.detailed("Oh!")); System.out.println(bod2.detailed("Hi!")); System.out.println(desc.brief()); System.out.println(mult.twoArg("Pi! ", 3.14159)); System.out.println(moreLines.brief()); } } ~~~ 輸出結果: ~~~ Oh! No Parens! Hi! More details Short info Pi! 3.14159 moreLines() from moreLines() ~~~ 我們從三個接口開始,每個接口都有一個單獨的方法(很快就會理解它的重要性)。但是,每個方法都有不同數量的參數,以便演示 Lambda 表達式語法。 任何 Lambda 表達式的基本語法是: 1. 參數。 2. 接著`->`,可視為“產出”。 3. `->`之后的內容都是方法體。 * **\[1\]**當只用一個參數,可以不需要括號`()`。 然而,這是一個特例。 * **\[2\]**正常情況使用括號`()`包裹參數。 為了保持一致性,也可以使用括號`()`包裹單個參數,雖然這種情況并不常見。 * **\[3\]**如果沒有參數,則必須使用括號`()`表示空參數列表。 * **\[4\]**對于多個參數,將參數列表放在括號`()`中。 到目前為止,所有 Lambda 表達式方法體都是單行。 該表達式的結果自動成為 Lambda 表達式的返回值,在此處使用**return**關鍵字是非法的。 這是 Lambda 表達式簡化相應語法的另一種方式。 **\[5\]**如果在 Lambda 表達式中確實需要多行,則必須將這些行放在花括號中。 在這種情況下,就需要使用**return**。 Lambda 表達式通常比**匿名內部類**產生更易讀的代碼,因此我們將在本書中盡可能使用它們。
                  <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>

                              哎呀哎呀视频在线观看