Dart is a client-optimized language for fast apps on any platform。
下載安裝 Dart SDK
Dart SDK 可以用來開發 WEB、命令行程序、服務端程序等。
如果是開發移動端APP,直接下載 Flutter 就行,不用在下載 Dart SDK。
我們這裏爲了學習和演示,還是先下載一個 Dart SDK。
Mac 可以直接使用 brew 安裝:
$ brew tap dart-lang/dart
$ brew install dart
查看要安裝的 dart 信息:
$ brew info dart
安裝成功後,我們可以使用 dart --version
來查看dart的版本:
$ dart --version
Dart VM version: 2.5.0 (Fri Sep 6 20:39:27 2019 +0200) on "macos_x64"
可以看到,我們現在安裝的是 dart 2.5版本。
查看 dart 安裝到哪裏了?
$ which dart
/usr/local/bin/dart
$ ls -al /usr/local/bin/dart
lrwxr-xr-x 1 wangtom admin 29 9 25 10:22 /usr/local/bin/dart -> ../Cellar/dart/2.5.0/bin/dart
可以看到 dart 安裝到了 /usr/local/Cellar/dart/2.5.0
目錄下:
$ /usr/local/Cellar/dart/2.5.0/bin/dart --version
Dart VM version: 2.5.0 (Fri Sep 6 20:39:27 2019 +0200) on "macos_x64"
查看 dart 目錄:
$ tree /usr/local/Cellar/dart/2.5.0 -L 2
/usr/local/Cellar/dart/2.5.0
├── INSTALL_RECEIPT.json
├── LICENSE
├── README
├── bin
│ ├── dart -> ../libexec/bin/dart
│ ├── dart2aot
│ ├── dart2js
│ ├── dartanalyzer
│ ├── dartaotruntime
│ ├── dartdevc
│ ├── dartdoc
│ ├── dartfmt
│ └── pub
└── libexec
├── bin
├── dartdoc_options.yaml
├── include
├── lib
├── model
├── revision
└── version
可以看到 bin 目錄下處理 dart 目錄,還有很多其他的命令。
比如,將Dart編譯爲JavaScript的命令: dart2js
。
比如,Dart官方的包管理器命令: pub
。
比如,Dart代碼格式化工具命令: dartfmt
。
第一個Dart程序HelloWorld
創建一個 dart-dev/examples
目錄,在目錄中創建一個文件,名爲hello.dart
:
其代碼如下:
// 第一個dart代碼
void main() {
print('Hello, World!');
}
每個 dart
應用都有一個 main() 函數。使用函數 print() 將文字輸出到控制檯。
進入代碼目錄,查看 hello.dart
文件內容:
$ cd dart-dev/examples
$ cat hello.dart
// 第一個dart代碼
void main() {
print('Hello, World!');
}
可以使用 dart hello.dart
執行代碼:
$ dart hello.dart
Hello, World!
Dart預覽概覽
所有變量引用的都是 對象,每個對象都是一個 類 的實例。數字、函數以及 null 都是對象。所有的類都繼承於 Object 類。
儘管 Dart 是強類型語言,但是在聲明變量時指定類型是可選的,因爲 Dart 可以進行類型推斷。
Dart 支持泛型,比如 List(表示一組由 int 對象組成的列表)或 List(表示一組由任何類型對象組成的列表)。
Dart 沒有類似於 Java 那樣的 public、protected 和 private 成員訪問限定符。如果一個標識符以下劃線 (_
) 開頭則表示該標識符在庫內是私有的。
代碼示例:
演示變量的定義,函數定義與調用等。
// dart代碼
void main() {
print('商品詳情: ');
print('----------------');
// 直接調用方法
// getGoodsInfo('最新款iPhone藍色手機', 50, 8999.58);
// getGoodsInfo('小米5G環繞屏概念手機', 80, 19999.22);
// 定義變量,並傳遞參數
String iPhoneName = "新款蘋果手機"; // 定義一個String類型
int iPhoneStock = 50; // 定義一個int類型
double iPhonePrice = 8999.58; // 定義一個double類型
// 調用返回,並賦值給一個變量 goods, 然後打印輸出
var goods = getGoodsInfo(iPhoneName, iPhoneStock, iPhonePrice);
print(goods); //輸出: {name: 新款蘋果手機, stock: 50, price: 8999.58, tags: {熱銷, 庫存緊張}}
}
// 定義一個函數,傳入商品的三個參數,然後返回一個對象
getGoodsInfo(String name, int stock, double price) {
print('商品名稱: $name 商品庫存: $stock 商品價格: $price '); // 打印輸出到控制檯。
// 定義一個Set變量,用來存儲商品標籤
var tags = <String>{};
tags.add('熱銷');
if (stock >= 100) {
tags.add('庫存充足');
} else if (stock <= 0 ) {
tags.add('庫存不足');
} else {
tags.add('庫存緊張');
}
// 定義一個 Object
var item = {
'name': name,
'stock': stock,
'price': price,
'tags': tags
};
return item;
}
reference
https://dart.dev/get-dart
http://www.dartdoc.cn/guides/language/language-tour
[END]