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

溫馨提示×

溫馨提示×

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

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

Scala柯里化是什么

發布時間:2021-12-08 17:15:19 來源:億速云 閱讀:135 作者:iii 欄目:開發技術

這篇文章主要講解了“Scala柯里化是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Scala柯里化是什么”吧!

柯里化是把接受多個參數的函數變換成接受一個單一參數(最初函數的第一個參數)的函數,并且返回接受余下的參數而且返回結果的新函數的技術。

下面先給出一個普通的非柯里化的函數定義,實現一個加法函數:

scala> def plainOldSum(x:Int,y:Int) = x + y
plainOldSum: (x: Int, y: Int)Int
scala> plainOldSum(1,2)
res0: Int = 3

使用“柯里化”技術,把函數定義為多個參數列表:

scala> def curriedSum(x:Int)(y:Int) = x + y
curriedSum: (x: Int)(y: Int)Int
scala> curriedSum (1)(2)
res0: Int = 3

當你調用 curriedSum (1)(2)時,實際上是依次調用兩個普通函數(非柯里化函數),第一次調用使用一個參數 x,返回一個函數類型的值,第二次使用參數y調用這個函數類型的值,我們使用下面兩個分開的定義在模擬 curriedSum 柯里化函數:

首先定義第一個函數:

scala> def first(x:Int) = (y:Int) => x + y
first: (x: Int)Int => Int

然后我們使用參數1調用這個函數來生成第二個函數。

scala> val second=first(1)
second: Int => Int = <function1>
scala> second(2)
res1: Int = 3

first,second的定義演示了柯里化函數的調用過程,它們本身和 curriedSum 沒有任何關系,但是我們可以使用 curriedSum 來定義 second,如下:

scala> val >
onePlus: Int => Int = <function1>

下劃線“_” 作為第二參數列表的占位符, 這個定義的返回值為一個函數,當調用時會給調用的參數加一。

scala> onePlus(2)
res2: Int = 3

通過柯里化,你還可以定義多個類似 onePlus 的函數,比如 twoPlus

scala> val twoPlus = curriedSum(2) _
twoPlus: Int => Int = <function1>
scala> twoPlus(2)
res3: Int = 4

Scala柯里化是什么

感謝各位的閱讀,以上就是“Scala柯里化是什么”的內容了,經過本文的學習后,相信大家對Scala柯里化是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

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

AI

翁牛特旗| 溧水县| 北安市| 手机| 镇康县| 南投县| 巫山县| 伊春市| 安丘市| 营口市| 阳山县| 皮山县| 临安市| 崇阳县| 和平县| 罗甸县| 景东| 沙湾县| 同江市| 江都市| 漳平市| 焦作市| 潮安县| 大安市| 呼玛县| 扎鲁特旗| 延川县| 祁阳县| 通化市| 镇宁| 钦州市| 松原市| 大悟县| 城步| 玉山县| 大名县| 郓城县| 周至县| 呼玛县| 滨州市| 贵阳市|