Dart是谷歌開發的計算機程式語言,後來被Ecma (ECMA-408)認定為標準。它被用於web、伺服器、移動套用和物聯網等領域的開發。它是寬鬆開源許可證(修改的BSD證書)下的開源軟體。
Dart是面向對象的、類定義的、單繼承的語言。它的語法類似C語言,可以轉譯為JavaScript,支持接口(interfaces)、混入(mixins)、抽象類(abstract classes)、具體化泛型(reified generics)、可選類型(optional typing)和sound type system。
基本介紹
- 外文名:Dart
- 推出時間:2011年10月10日
- 項目創建者:Lars Bak,Kasper Lund
歷史
發布
標準化
Flutter
新版本
例子
main() { print('Hello World!');}
int fib(int n) => (n > 2) ? (fib(n - 1) + fib(n - 2)) : 1;void main() { print('fib(20) = ${fib(20)}');}
// 引入math庫以訪問sqrt函式import 'dart:math' as math;// 創建類Point.class Point { // Final變數一經定義不可改變 // 創建分別代表x、y軸的距離變數 final num x, y; // 在構造方法中以語法糖快捷地設定實例變數 Point(this.x, this.y); // 一個帶有初始化列表的命名構造方法 Point.origin() : x = 0, y = 0; // 計算兩點距離的方法 num distanceTo(Point other) { var dx = x - other.x; var dy = y - other.y; return math.sqrt(dx * dx + dy * dy); } // 重載運算符 Point operator +(Point other) => new Point(x + other.x, y + other.y);}// 所有的Dart程式都以main()函式作為入口void main() { // 實例化兩個點 var p1 = new Point(10, 10); var p2 = new Point.origin(); // 計算兩點距離 var distance = p1.distanceTo(p2); print(distance);}
import 'dart:async';import 'dart:isolate';main() async { var receivePort = new ReceivePort(); await Isolate.spawn(echo, receivePort.sendPort); // 'echo'傳送的第一個message,是它的SendPort var sendPort = await receivePort.first; var msg = await sendReceive(sendPort, "foo"); print('received $msg'); msg = await sendReceive(sendPort, "bar"); print('received $msg');}/// 新isolate的入口函式echo(SendPort sendPort) async { // 實例化一個ReceivePort 以接收訊息 var port = new ReceivePort(); // 把它的sendPort傳送給宿主isolate,以便宿主可以給它傳送訊息 sendPort.send(port.sendPort); // 監聽訊息 await for (var msg in port) { var data = msg[0]; SendPort replyTo = msg[1]; replyTo.send(data); if (data == "bar") port.close(); }}/// 對某個port傳送訊息,並接收結果Future sendReceive(SendPort port, msg) { ReceivePort response = new ReceivePort(); port.send([msg, response.sendPort]); return response.first;}