在 Scala 中使用 Currying 建立你的職業生涯
已發表: 2020-07-06目錄
斯卡拉簡介
Scala 是一種編程語言,由 Martin Odersky 及其研究小組於 2003 年開發。Scala 的發展是大數據世界的一場革命。 它是一種極其堅固且值得稱道的語言,它將為子孫後代改變世界。 它是基於編譯器的,這使得它非常快速和熟練。
Scala 的重要餘地是Java 虛擬機 (JVM) 。 Scala 代碼首先由 Scala 編譯器累積,並創建等效的字節代碼,然後將其移動到 Java 虛擬機以產生產量。 沿著這些思路,Scala 變成了處理大量大數據的方法。
為什麼 Scala 在編程界如此受青睞?
Scala 受到各種程序員的青睞不僅僅是幾個原因。 讓我們在這裡討論其中的幾個。
它是一種多範式語言
Scala 足以支持兩種編程範式,即函數式編程 (FP) 和麵向對象編程 (OOP)。
簡潔的語法
Scala 中的編譯器(也稱為 Scala)非常強大,可以執行超出您預期的性能。 僅舉幾例,它可以產生 hasCode()、equals()、toString() 等等。
簡單易學
由於 Scala 支持面向對象的編程,因此與 Java 相比,它對程序員來說相對容易學習。 隨著在線社區的快速發展,Scala 論壇變得越來越頻繁。 其中一個主要部分是因為它具有良好的庫和簡潔的語法。 雖然程序員通過函數式編程和學習來操縱自己的方式,但他們仍然可以使用他們預先存在的面向對象編程技能並在 Scala 中構建東西。

學習: Python 是面向對象的語言嗎?
新的職業機會
由於其巨大的可擴展性,Scala 現在在行業中的需求越來越大。 隨著 Twitter、Quora、LinkedIn 等一流品牌遷移到 Scala,很明顯他們會尋找精通 Scala 的編碼人員。 Scala 成為其他行業的其他主要公司的時下需要只是時間問題。
靜態輸入
Scala 編譯器最大限度地使用其類型推斷,因此,儘管感覺是動態的,但 Scala 是有條不紊地靜態類型化的。 這可以在 Scala 中對變量和函數進行類型推斷。
現在我們已經了解了 Scala 是什麼,讓我們繼續前進並了解Scala 中的柯里化。
在 Scala 中進行柯里化
Currying 以美國數學家 Haskell Curry 的名字命名,他以在組合邏輯方面的工作而聞名。
Scala中的柯里化可以定義為解釋函數評估背後的策略,該函數接受各種參數以評估一組函數,每個函數都有一個單獨的函數。
在數學上,我們可以這樣寫——
f1 = f(a)
f2 = f1(b)
結果 = f2(c)
而且,它的偽代碼將是 -
結果 = f(a)(b)(c)

柯里化的語法
在 Scala中用於執行柯里化的語法如下所述:
def 乘法(a:Int)(b:Int) = a*b
也可以這樣寫:
def 乘法(a:Int) = (b:Int) => a*b
閱讀:印度的 Java 開發人員薪水:適合新手和有經驗的人
如何調用柯里化函數
為了在 Scala 中調用柯里化函數,我們必須為上述等式中提到的變量“ a”和“ b”賦值。
什麼是部分應用函數?
資源
當一個函數被調用時,它是為了將該函數應用於一組參數而完成的。 如果您傳遞了所有預期的參數,您最終會完全應用該函數。 當你只發送幾個參數時,你會得到一個部分應用的函數。 這為您提供了限制一些參數並稍後填寫其餘參數的便利。
部分應用函數的示例 –
第 1 步:定義具有多個參數的函數
scala> def plus(a: int)(b: int) = a + b
加:(a:int)(b:int)int
第 2 步:僅給出變量“ scala> def X = X(2)(_)
X: 整數 => 整數
這裡的輸出創建了一個 int => int 類型的新函數“X”。
這裡,X可以寫成如下
定義 X(b:int) = 2 + b
上面的等式描述的是,當 X 以初始 int 值 2 播種時,它會坐在那裡等待它可以添加的另一個 int 值。
作為一個綱要,部分應用的功能提供以下能力
- 你編寫一個通用函數。
- 您可以從通用功能中創建特定功能。
- 不管怎樣,您都可以使用這兩個功能。
- 您無需複制粘貼代碼即可創建新函數,因此您可以保持代碼乾燥。
閱讀:初學者的前 27 個 Scala 面試問題和答案
比較柯里化函數和部分應用函數 (PAF)
Currying 和 PAF 密切相關。 柯里化和部分應用的函數可能看起來是等價的——兩者都將你的函數轉換為具有更少參數的函數。 但是,它們之間是有區別的。
- Scala 中的柯里化始終創建嵌套的一元或一元函數。 因此改變的功能在很大程度上仍然與第一個類似。
- 部分應用程序創建了主觀數量的參數的功能。 更改後的函數與第一個函數並不完全相同——與第一個函數相比,它需要更少的參數。
- Scala中的柯里化不是部分應用程序,但在利用部分應用程序時可以很好地執行。 如果函數不採用固定數量的參數,則不能將 curry 應用於函數。 否則將無法成功運行。
Scala 框架
以下是一些卓越的 Scala 框架,您可以查看以更好地了解 Scala——
播放框架
提升網
保齡球框架

這是歷史上每一扇門都向當代人敞開,讓他們學習和追求他們想要的東西的時代。 有各種各樣的機構、導師、服務等,以實現學習並以學位和證書的形式提供驗證。
更重要的是,它現在可以在舒適的臥室中完成。 u pGrad是該行業的佼佼者,它徹底改變了教育體系,一次一門課程。 從 MBA 到法律到保險再到數據科學,upGrad 成功打破了當代教育的所有桎梏,在教育領域掀起了一場革命浪潮。
包起來
要查看我們廣泛的課程或了解我們的工作方式,請隨時請求回電或查看我們的網站。
如果您有興趣了解有關大數據計劃的更多信息,請查看我們的大數據軟件開發專業化 PG 文憑計劃,該計劃專為在職專業人士設計,提供 7 多個案例研究和項目,涵蓋 14 種編程語言和工具,實用的手在研討會上,超過 400 小時的嚴格學習和頂級公司的就業幫助。
從世界頂級大學在線學習軟件開發課程。 獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。
