上次我記錄了Flutter的環境搭建,這次來簡單記錄一下Drat語言,Flutter是 Google推出并開源的移動應用開發框架,開發語言是Dart,那么Dart語言和其他的語言在語法上有上面區別呢,就我目前了解到的一部分,其實有很多java或者kotlin的影子。
一 、變量聲明
1.var
類似于kotlin中的var,它可以接收任何類型的變量,和kotlin一樣第一次賦值和就不能再次改變變量的類型了。
var t;
t = "hi world";
// 下面代碼在dart中會報錯,因為變量t的類型已經確定為String,
// 類型一旦確定后則不能再更改其類型。
t = 1000;
2.dynamic和Object
和java中的object一樣,所有對象都是object子類,萬物皆對象。
dynamic和var類型聲明的變量都可以賦值任意對象。和var區別就在于聲明的變量在后期還是可以改變變量類型的。
dynamic t;
Object x;
t = "hi world";
x = 'Hello Object';
//下面代碼沒有問題
t = 1000;
x = 1000;
3. final和const
和java一樣final是用來修飾常量,只能被賦值一次。同樣const也和kotlin中的用法很類似,也是用來表示常量,只是在dart上被final或者const修飾的變量,變量類型可以省略。
//可以省略String這個類型聲明final str = "hi world";
//final String str = "hi world";
const str1 = "hi world";
//const String str1 = "hi world";
二、函數
1.和java一樣dart也是一種面向對象的語言,函數實際上也是一個對象。
bool isNoble(int index) {
return _list[index] != null;
}
2.和java中不同的是,bool這個函數返回類型可以不用寫,默認返回dynamic類型。
isNoble(int index) => return _list[index] != null;
如果只包含一個表達式的函數可以簡寫位一行,是不是有寫java的影子,哈哈。
3.Dart中函數可以作為變量存在:
var say = (str){
print(str);
};
say("hello world");
4.和kotlin 類似Dart中也可以將函數當作參數傳遞:
void execute(var callback) {
callback();
}
execute(() => print("hello world""))
5.在Dart中定義函數的時候,可以使用{param1, param2, …},放在參數的后面,可以用于指定名稱參數。例如:
//設置[name]和[age]標志
void setUser({String name, int age}) {
// ...
}
enableFlags( age: 12,bold: “xiaoming”);
調用函數的時候可以指定函數的名稱,優先賦值給后面的參數,這和kotlin里面還是挺像的。只是這里需要添加額外的大掛號。
今天就先記錄到這里,以后有用到其他在來補充。
浙公網安備 33010602011771號