Scala系列學習五 高階函式

2021-08-28 04:56:35 字數 1177 閱讀 4225

1、作為值的函式

**

* @program: scalablog

* @description: 高階函式

* 高階函式包括作為值的函式、匿名函式、閉包、柯里化等等

* @author: allen

* @create: 2018-09-17 14:13

**/class highfunctiondemo

/*** 作為值得函式,函式可以像其他的資料型別一樣被傳遞和操作,定義格式為:

* val 變數名 = (輸入引數型別和個數) => 函式實現和返回值型別和個數

* 「=」表示將函式賦給乙個變數

* 「=>」左面表示輸入引數名稱、型別和個數,右邊表示函式的實現和返回值型別和引數個數

*/val f1 = (x: int) => x * 2

private val arr1 = array(1, 2, 3, 4)

private val arr2: array[int] = arr1.map(f1)

println(arr2.tobuffer)

}

2、匿名函式

/*** 匿名函式

*/private val arr1 = array(1, 2, 3, 4)

private val arr2: array[int] = arr1.map(_ * 2)

println(arr2.tobuffer)}

3、將方法轉換為函式

/*** 將方法轉換為函式,利用下劃線可以將方法轉換為函式

*/def m1(x: int) = x * 2

//將m1方法轉換為f1函式

private val f1: int => int = m1 _

private val arr1 = array(1, 2, 3, 4)

private val arr2: array[int] = arr1.map(f1)

println(arr2)}

4、柯里化

// 柯里化,將原來接受兩個引數的方法變為接受乙個引數的方法

def m1(x: int) = (y: int) => x + y

val f1 = m1(1)

println(f1(2))

println(m1(1)(2))}

Django系列學習之五

後台管理頁面做好了,接下來就要做公共訪問的頁面了。當我們剛剛在瀏覽器中輸入 之後,瀏覽器顯示出了後台管理的登入頁面,那有沒有同學想過這個伺服器是怎麼給我們找到這個頁面並返回呢?admin 是我們想要請求得頁面,伺服器在收到這個請求之後,就一定對應著乙個處理動作,這個處理動作就是幫我的產生頁面內容並返...

Scala函式特性系列 高階函式

帶函式引數的函式由於是乙個接受函式引數的函式,故被稱為 高階函式,像之前講到的 map 函式就是高階函式。如下例所示 上述 中,函式接受乙個函式 f作為引數,接受乙個 int型別的引數,進行 f v 運算,在下面又給出了 f具體的定義 layout 函式 同樣的,高階函式也可以產出另乙個函式 即返回...

scala入門 (五) scala高階函式用法

前言 上一節對scala的匹配模式,做了乙個大致的介紹。這一節將對scala的高階函式進行乙個入門。作為一門函式式程式語言,想要用好這門語言,scala函式的高階用法還是比較重要的。同樣再介紹相關知識的時候,會和python進行對比。字串高階操作 格式化字串操作 在python中格式字串的方式比較多...