2015-12-13 88 views
11

像C#中的LINQ一樣,爲了在Scala中理解,Kotlin中的任何類似?如果不支持,是否計劃?Kotlin是否支持monadic理解?


編輯:答案是理解支持是在桌子上。

+5

我認爲,有一直在這裏的一些誤解。沒有這樣的政策,不能在任何地方使用monad。該語言中內置了一些monad-like結構,例如安全調用可空類型。我們目前不支持理解,但這個功能在桌面上。 –

+0

正如@AndreyBreslav指出的那樣,Kotlin確實使用了monadic結構。我在回答中說的是,沒有任何目標可以在每個**單一語言概念 – voddan

回答

5

在科特林1.1的預覽版本,有可用於不同種類的一元內涵的普遍async/await語法:

許多語言(從2012年C#)通過專用語言支持異步 編程構造如異步/等待 關鍵字。在Kotlin中,我們概括了這個概念,以便庫可以定義它們自己的這種結構版本,而異步不是 關鍵字,而只是一個函數。

這個設計允許整合不同的異步API: 期貨/承諾,回調傳遞等。它也是通用的,足以表達延遲生成器(yield),並覆蓋一些其他用例。

source

+0

thx中使用單聲道。不知道異步/等待與返回/綁定類似。也很高興看到1.1中的新功能 –