Dart
外觀
編程範型 | 多範式:指令碼、物件導向(類別為基)、指令式、函數式[1] |
---|---|
設計者 | Lars Bak、Kasper Lund |
實作者 | |
釋出時間 | 2011年10月10日[2] |
目前版本 |
|
型態系統 | 可選類型 |
系統平台 | 跨平台 |
作業系統 | 跨平台 |
特許條款 | BSD特許條款 |
副檔名 | .dart |
網站 | dart |
主要實作產品 | |
Dart VM, dart2native, dart2js, DDC, Flutter | |
啟發語言 | |
C、C++、Java、TypeScript、Ruby、JavaScript、Smalltalk、Erlang、Strongtalk、C#[4] |
Dart([KK] 英語發音:/dɑrt/, [DJ] 英語發音:/dɑ:t/)是一種適用於萬維網的開放原始碼程式語言,由Google主導開發,於2011年10月公開。它的開發團隊由Google Chrome瀏覽器V8引擎團隊的領導者拉爾斯·巴克主持,目標在於成為下一代結構化Web開發語言。
類似JavaScript,Dart也是一種物件導向語言,但是它採用類別為基的程式設計。它只允許單一繼承,語法風格接近C語言。
發展歷史
[編輯]2011年Google在丹麥奧胡斯(Aarhus)舉行的「GOTO國際軟件開發大會」預告將釋出新網頁程式語言Dart,是一種類別為基的程式設計語言(class-based programming language),在所有瀏覽器都能夠有高效能的執行效率。2011年10月10日Google宣佈推出Dart的預覽版。[5]
Google在dartlang.org公佈Dart開發工具及原始碼範例等內容,同時也提供相關虛擬機器平台。目前Dart有三種方式執行:一是在原生的虛擬機器上,二是將Dart程式碼轉成Javascript,直接在Javascript引擎上執行[6],三是將其編譯為可執行檔並執行[7]。
標準化
[編輯]ECMA已經成立技術委員會TC52[8]展開標準化Dart的工作,同時由於Dart能夠被編譯成標準的JavaScript,它能夠有效地在所有現代瀏覽器上執行。2014年7月,ECMA的第107次全體大會通過了第一版Dart語言規範。[9]
範例
[編輯]Hello World範例:
void main() {
print("Hello World!");
}
計算斐波那契數列次目函數:
// If int n > 2, return fib(n - 1) + fib(n - 2);
// otherwise, return int 1 as result
int fib(int n) => (n > 2) ? (fib(n - 1) + fib(n - 2)) : 1;
void main() {
print('fib(20) = ${fib(20)}');
}
匿名函數範例:
void main() => print(fib(3));
Function fib = (int n) => (n > 2) ? (fib(n - 1) + fib(n - 2)) : 1;
參見
[編輯]- Flutter
- CoffeeScript
- Elm,一種編譯到JavaScript的靜態型別的函數式語言
- Fantom
- Go,另一個Google開發的語言
- Google Web Toolkit
- Haxe,一種可以編譯到JavaScript和其它幾種語言的語言
- Opa
- TypeScript
- Rescript
參考資料
[編輯]- ^ Kopec, David. Dart for Absolute Beginners. : 56 [24 November 2015]. ISBN 9781430264828. (原始內容存檔於2016-04-20).
- ^ Bak, Lars. Dart: a language for structured web programming. Google Code Blog. Google. [31 January 2016]. (原始內容存檔於2016-07-13).
- ^ Release 3.5.4.
- ^ Web Languages and VMs: Fast Code is Always in Fashion. (V8, Dart) - Google I/O 2013. Google. [22 December 2013]. (原始內容存檔於2018-12-25).
- ^ Presentation: "Opening Keynote: Dart, a new programming language for structured web programming" (頁面存檔備份,存於互聯網檔案館) - GOTO Aarhus 2011 conference. Planned official presentation of the Dart language, on October 10.
- ^ Google推Dart語言,欲取代JavaScript?. [2011-10-19]. (原始內容存檔於2011-10-13).
- ^ dart compile. dart.dev. [2022-10-16].
- ^ TC52 - Dart. [2013-12-16]. (原始內容存檔於2016-08-02).
- ^ 存档副本. [2015-03-27]. (原始內容存檔於2015-04-24).
外部連結
[編輯]