【IT168 資訊】最近學習了一些現代程式語言,比如Reason,Swift,Kotlin和Dart。這些程式語言提供了許多新功能,本文主要分享了我認為最有趣的十大功能,這也可以作為劃分現代程式語言的參考。
未來幾年,我希望這些功能將會被更廣泛地採用。對於一些較老的程式語言,比如Javascript、PHP、Java和Python。由於許多程式設計師必須每天在工作中使用這些程式語言,如果這些語言可以不斷向前發展,應該是最值得高興的一件事情。
#1 Pipeline operator
雖然找不到任何官方文檔,但它看起來像ECMAScript一樣。
#2 模式匹配
這項功能主要來自於Kotlin,熟悉Kotlin或具備Java編程基礎的程式設計師可以嘗試一下。(示例參考地址:https://kotlinlang.org/docs/reference/basic-syntax.html#using-when-expression)
#3 Reactive(Rx)編程構建
這項功能來自於Dart程式語言,Dart異步編程的特點是Future和Stream類。
Future表示一個不能立即完成的計算。在普通函數返回結果的地方,一個異步函數返回一個Future,它將包含最終結果。
Stream是一系列異步事件,就像一個異步可迭代的地方。(代碼參考:https://www.dartlang.org/tutorials/language/streams)
#4 lambda函數的單個參數隱式名稱(使用「it」)
這項功能同樣來自於Kotlin(代碼參考:https://kotlinlang.org/docs/reference/lambdas.html#it-implicit-name-of-a-single-parameter),這將涉及高階函數和Lamdba兩部分介紹,高階函數以函數作為參數或返回函數。一個很好的例子是lock(),它接受一個鎖對象和函數,程式設計師可通過運行函數並釋放鎖。
#5 重構
「重構」是一種從數據結構中提取欄位的直觀方式,可以在任何使用變量的地方使用。(代碼參考:https://reasonml.github.io/guide/language/destructuring/)
#6 級聯運算符
本功能主要來自Dart程式語言,(代碼參考:https://www.dartlang.org/guides/language/language-tour#cascade-notation-)主要展示了如何使用每個主要的Dart特性,從變量和運算符到類和庫以及如何使用該程式語言進行編程。
#7 if表達式
在Kotlin中,if是一個表達式,即它返回一個值。因此沒有三元運算符(condition?then:else),因為普通的if就可以工作得很好。
#8 Try表達式
本功能來自於Kotlin(代碼參考:https://kotlinlang.org/docs/reference/idioms.html#trycatch-expression),Kotlin中隨機使用的idiom集合。如果你有一個最喜歡的idiom,可以通過發送pull請求來提供。
#9 自動currying
(代碼參考:https://reasonml.github.io/guide/language/function/#currying)
#10 方法擴展
本功能來自於Swift,可擴展為現有的類,結構,枚舉或協議類型添加新的功能。這包括擴展無法訪問原始原始碼的類型(稱為追溯建模)。擴展與Objective-C中的類別相似(相似但並不等於Objective-C中的類別,Swift擴展沒有名稱)。(代碼參考:https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Extensions.html#//apple_ref/doc/uid/TP40014097-CH24-ID151)