Dart

Dart([KK] 英語發音:/dɑrt/, [DJ] 英語發音:/dɑ:t/)是一种适用于全球資訊網開放原始碼程式語言,由Google主導開發,於2011年10月公開。它的開發團隊由Google Chrome瀏覽器V8引擎團隊的領導者拉爾斯·巴克主持,目標在於成為下一代結構化Web開發語言。

Dart
多范式脚本面向对象基于类)、指令式函数式[1]
設計者Lars Bak、Kasper Lund
實作者Google
2011年10月10日2011-10-10[2]
当前版本
  • 3.3.3 (2024年3月27日;穩定版本)[3]
型態系統可选类型
系统平台跨平台
操作系统跨平台
許可證BSD许可证
文件扩展名.dart
網站
主要實作產品
Dart VM, dart2native, dart2js, DDC, Flutter
啟發語言
CC++JavaTypeScriptRubyJavaScriptSmalltalkErlangStrongtalkC#[4]

類似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;

参见

参考资料

  1. Kopec, David. . : 56 [24 November 2015]. ISBN 9781430264828. (原始内容存档于2016-04-20).
  2. Bak, Lars. . Google Code Blog. Google. [31 January 2016]. (原始内容存档于2016-07-13).
  3. .
  4. . Google. [22 December 2013]. (原始内容存档于2018-12-25).
  5. 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.
  6. . [2011-10-19]. (原始内容存档于2011-10-13).
  7. . dart.dev. [2022-10-16].
  8. . [2013-12-16]. (原始内容存档于2016-08-02).
  9. . [2015-03-27]. (原始内容存档于2015-04-24).

外部链接


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.