dart之旅(一)
阿新 • • 發佈:2018-11-30
console sta 環境安裝 ria odi 等價 app func tar 就可以執行 dart 文件了。以下面這段 dart 代碼為例:
,我們就將第一個 dart 程序跑了起來。
前言
最近在看 dart 了,本著 “紙上得來終覺淺,絕知此事 markdown” 的原則,準備邊學邊寫,寫一個系列,這是第一篇。學習過程中主要是參考
A Tour of the Dart Language和A Tour of the Dart Libraries, 外加自己的一些理解。內容上側重於基礎以及比較 dart 和 js 的異同。
安裝 sdk
工欲善其事,必先利其器,我們先來安裝一下,dart 的 sdk,只有這樣,我們寫的 dart 代碼才能跑起來。安裝 sdk 可以參考搬磚老程的這篇博客,寫的可以說是很詳細了。
安裝完成之後,在命令行終端輸入 dart
,如果輸出 dart 相關命令的解釋,那就表示我們的環境安裝成功。接下來我們先記住一個命令 dart xxx.dart
// Define a function.
printInteger(int aNumber) {
print(‘The number is $aNumber.‘); // Print to console.
}
// This is where the app starts executing.
main() {
var number = 42; // Declare and initialize a variable.
printInteger(number); // Call a function.
}
將上面的這段代碼保存為 main.dart,在終端輸入 dart main.dart
變量
在 dart 中,可以使用 var
, dynamic
, const
, final
來聲明變量 / 常量。為了找出它們之間的不同,首先來看一個關於 var 和 dynamic 差別的例子。
main(List<String> args) { // var var d = "111"; // String d =‘111‘; 等價於顯式聲明 d 的類型並賦值 // d = 2; // 不能再賦不同類型的值 print(d); // dynamic dynamic c = ‘sss‘; c = 3; // 可以賦值不同類型的值 print(c); }
從上面的例子可以看出,dart 具有類型推斷機制,當使用 var 聲明一個變量時,這個變量自動被定義成所賦值的類型,之後重新賦值時,只能對這個變量賦 ** 同類型 ** 的值。
而 dynamic 在重新賦值的時候可以賦不同類型的值。
接下來再談談 final
和 const
,final 和 const 都只能被賦值一次,但是兩者還是有如下區別:
- 1??const 可以作用在值上, 當 const 作用在值上時,值不可修改,如果對應的變量沒有用 const 或者 final 聲明,變量可以重新賦值
- 2??使用 const 聲明的對象,之後不能再進行操作(unmodifiable), 而 final 聲明的是可以的。參考下面的代碼:
final name = 5;
final name1 = const 5;
var name2 = const {};
const ax = 6;
const x = [];
x.add(6); // Cannot add to an unmodifiable list
final y = [];
y.add(9); // ok
const x1 = {};
obj[‘x1‘] = 5; //Cannot set value in unmodifiable Map
final y1 = {};
obj[‘y1‘] = 5; //ok
新手開車,如有錯誤還請指出。未完待續
dart之旅(一)