91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

每天學習一點Scala05_函數

發布時間:2020-07-15 15:36:41 來源:網絡 閱讀:310 作者:snailbigdata 欄目:開發技術
  1. Scala將函數當作一等公民;一個函數可以像一個變量一個被使用;

  2. 函數可以作為輸入參數傳給另一個函數;

  3. 函數可以定義為一個匿名函數字面量,就像字符串字面量;

  4. 函數可以被賦給一個變量;

  5. 可以在一個函數內定義函數;

  6. 函數可以作為另外一個函數的返回值;

  7. 在Scala中,使用關鍵字def定義函數;格式如下:

    def 函數名(參數1:數據類型,參數2:數據類型):輸出類型 = { 函數體 }

  8. 例:

    def add(firstInput:Int,secondInput:Int):Int = {

      val sum = firstInput + secondInput;

      return sum;

    }

  9. 上例的簡潔版本如下(省略了輸出類型,scala會自動進行類型推斷):

    def add(firstInput:Int,secondInput:Int) = firstInput + secondInput

  10. Scala支持不同類型的函數,包括:

    1. 方法.一個對象的成員函數稱為方法.該方法可以訪問所屬對象的所有字段;

    2. 本地函數.在另一個函數或方法內部定義的函數稱為"本地函數";它能訪問外部函數的變量和輸入參數.本地函數只對它所定義的外部函數可見.

    3. 高階方法(higher-order method).一個將一個函數作為輸入參數的方法,稱為"higher-order method".類似的,一個high-order function是將另一個函數作為輸入的函數.高階方法和高階函數幫助減少代碼重復.此外,使用它們還可以寫出更簡潔的代碼;

      下面是一個簡單的高階函數:

      def encode(n:Int,f:(Int)=>Long):Long = {

        val x = n * 10;

        f(x);

      }

      這段代碼輸入兩個參數,返回一個Long類型的值.第一個輸入參數類型是Int.第二個輸入參數類型是一個函數f,此函數f需要一個Int類型輸入參數,并返回一個Long類型值.

    4. 函數字面量.函數字面量指的是一個未命名或匿名函數.在程序中可以像使用一個字符串變量一樣使用它.它還可以作為一個輸入參數傳遞給一個高階方法或高階函數.另外,它也可以被賦給一個變量.下面是一個函數字面量的例子:

      (x:Int) => {

        x + 100;

      }

      字面量函數的定義是使用一個小括號,里面是輸入參數,后跟一個右箭頭和一個函數體.

      上面代碼的一個簡寫版本是: (x:Int) => x + 100;

    5. 之前定義的高階函數encode可以使用一個函數字面量作為輸入參數,如下所示:

      val code = encode(10,(x:Int) => x + 100);

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

凌海市| 乃东县| 枣庄市| 宜良县| 冀州市| 日土县| 孝昌县| 东至县| 沽源县| 乳山市| 龙胜| 隆化县| 通海县| 颍上县| 壤塘县| 四子王旗| 潮州市| 铜川市| 股票| 旬邑县| 军事| 喀什市| 关岭| 呼图壁县| 渭南市| 通渭县| 南溪县| 咸阳市| 施秉县| 泗洪县| 务川| 宜城市| 承德县| 三原县| 贵溪市| 黔西| 金华市| 灵山县| 蒙阴县| 措勤县| 涞水县|