Flutter基礎語法歸納
1、var、final、const
1.1、var
- 變數,不賦值為null
1.2、final
- 最終變數,只能被賦值一次,賦值後不可改變
1.3、const
- 常量,初始時賦值,不可改變
2、num
2.1、num
~/
:計算時的取整操作.toString()
:轉成字串
2.2、int
- int型別不能直接賦值成double
.isOdd
:判斷是否為奇數.isEven
:判斷是否為偶數.toDouble()
:轉換成double型別
2.3、double
- double型別可以直接賦值int型別
.toInt()
:轉換成Int型別
3、String
- var str = '字串',再str = 10會出錯:帶賦值的初始化會固定其型別,要寫成var str; str = '字串'
str[n]
:取字串str的第n個字元+
:拼接字串,str1 + str2*
:n個相同的字串拼接,str * n$
:取值,str3 = str1 + str2,\$str3 或 \${str1 + str2},{}中放表示式
r
:字串中不需要轉譯字元,讓\n等這些能出現在字串中,r'貓\n狗’
.lengtg
:取字串長度(轉譯字串佔1個長度,'\n':1個長度,r'\n':2個長度)
3、1、雙引號""
- 建立多行字串,直接寫,直接拼到一起顯示
3、2、三引號''' '''
- 建立多行字串,並保留所有空格、換行等格式
4、list & Map
4.1、list(陣列)
.asMap()
:角標做key,轉成鍵值對.forEach((element) { }
:遍歷內容
4.1.1、 可變list
- var list1 = [1,2,'字串'];
.add(value)
: 新增,list.add('cat');.remove(value)
: 刪除,list.add('字串');.insert(index, element)
: 插入,list.insert(1,'dog');.clear()
: 清空.sort()
:排序.sublist(int start ,[int? end])
:擷取字串,start:從第幾位開始擷取, end:擷取多少位,可選的
,不填為截到最後
4.1.2、不可變list
- var list2 = const [1,2,'字串'];
4.2、Map(鍵值對、字典)
.length
:長度.keys
:所有key.values
:所有值.forEach((key, value) { })
:遍歷所有內容
4.2.1、可變Map
- var json = {1 : 10, 2.5 : 'dog', '3' : 'cat'};
4.2.2、不可變Map
- var json = const {1 : 10, 2.5 : 'dog', '3' : 'cat'};
5、運算子
??=
:賦值運算,如果a為空,則賦值10,a ??= 10;??
:條件表示式,如果a有值返回a,如果沒值返回b,c = a ?? b
6、方法、箭頭函式
- 方法也是一個物件
- 返回值和引數型別可以省略
- 當方法的執行語句
只有一句時
可以使用箭頭函式=> 表示式
- 可選引數:傳遞引數的時候必須帶上形參名字
{}
表示可選的,引數不用按順序,[]
表示可選的,引數要按順序填
7、方法、函式
7.1、Dart方法作為引數傳遞
7.2、匿名方法
- 沒有方法名稱的方法 ``` //匿名方法 (引數,可為空) { 執行程式碼; } //比如 (int i) { print('i'); };
//常規用func接收一下 var func = (引數) { 執行程式碼; } func(); ```
7.3、立即執行程式碼
((引數) {
執行程式碼;
};
8、閉包(closure)
- 定義在函式裡邊的函式,閉包也是一個物件
可以訪問外部函式的區域性變數
- 閉包函式被釋放前,
內部使用的變數不會被釋放
,會被閉包函式持續持有
「其他文章」