Dart語言中的currying(柯里化)實現

2021-09-12 15:58:36 字數 559 閱讀 8941

dart語言是谷歌開發的一款程式語言,谷歌移動開發框架flutter就是使用該語言作為開發語言

dart支援函式式程式設計,函式式程式設計可以實現的功能之一是currying,柯里化

currying是啥呢?

維基百科裡給出的概念:是一種把接受多個引數的函式變換成接受乙個單一引數(最初函式的第乙個引數)的函式,並且返回接受餘下的引數而且返回結果的新函式的技術。

概念讀起來很繞口,還是直接上例子吧

add(a) ;

}main()

以上**實現的功能就是求值 a + b。

add方法接收乙個引數a,返回乙個函式,該函式的引數是b,方法體是求a和b的和

採用lambda表示式的方式為:

add(a)
再簡化一下:

add(a) => (b) => a + b;
通過以下方式可以看到呼叫add(a),會返回乙個函式,該函式就是 (b) => a + b;

main()

Dart語言中的async和await

async 和 await 開始說這兩個關鍵字之前我覺得有必要提一下 在dart中沒有子執行緒一說,所有 都是在一條主線上執行的,所以需要用非同步來實現一些耗時操作。如果非要開啟多執行緒需要使用隔離,這裡不做敘述 來說一下這兩個關鍵字吧,async用來修飾方法,需要寫在方法括號的後面,await寫在...

Dart語言學習 十四 Dart泛型

什麼是泛型?通俗理解 泛型就是解決 類 介面 方法的復用性 以及對不特定資料型別的支援 型別校驗 如下 只能返回string型別的資料string getdata string value 如下 同時支援返回 string型別 和int型別 但是這麼些造成 冗餘string getdata1 str...

Dart語言學習 三 Dart數值型

數值型有num,int,double num a 10 a 12.5 print a print a.runtimetype int b 20 b 20.5 print b print b.runtimetype double c 10.5 c 30 print c print c.runtimet...