Dart入門系列:
Flutter開發Dart極速入門 (基本類型)
Flutter開發Dart極速入門 (變量)
Flutter開發Dart極速入門 (函數)
Flutter開發Dart極速入門 (操作符與流程控制語句)
Flutter開發Dart極速入門 (異常)
Flutter開發Dart極速入門 (類和對象)
Flutter開發Dart極速入門 (泛型)
Flutter開發Dart極速入門 (Dart異步詳解)
Flutter開發Dart極速入門 (生成器)
Flutter開發Dart極速入門 (庫的使用)
Flutter插件化開發注意事項(Packages與插件化開發)
Flutter在Android原生工程中的集成
基本類型
Number數值
-
int: 整數值
-
double: 64-bit 雙精度浮點數
-
int和double是Number的子類
-
string 轉換成 int
int i = int.parse('1');
-
當給一個double類型賦一個int值時, 會自動轉成double
String字符串
-
Dart的字符串是utf-16編碼的字符序列, 可以使用 ’ ’ 或 " " 初始化
-
可以使用三個單引號或雙引號來創建多行字符串對象
-
可以使用 r 前綴創建"raw"字符串
// 使用r屏蔽/轉義 var strType2 = 'test1 \ntest2 '; // print輸出結果 \n有換行效果 var strType2r = r'test1 \n test2'; // print輸出: test1 \n test2
-
可以在字符串中使用表達式: ${expression} , 如果表達式是一個標識符, 可以省略 {}, 如果表達式是一個對象, 則dart會自動調用對象的同String()來獲取一個字符串
-
StringBuffer
StringBuffer sb = StringBuffer(); sb..write('obj1')..write("...")..write("obj2"); print('value: $sb'); // value: obj1...obj2
bool布爾類型
- bool 對象未初始化的默認值是null
list列表(數組)類型
-
List 也是對象, Dart可以直接打印 List 包括 List 的元素
-
Java中直接打印 List 的結果是地址值
-
有增刪改查, 支持倒序, 自帶排序、洗牌, 可使用+將兩個 List 合併
List mList = List(); // 創建一個不固定長度的List mList = [1,3,2,5,4]; // 賦值 int first = mList.first; print(mList.first); // 取出第一個元素 print(mList.last); // 取出最後一個元素 print(mList.length); // 獲取長度 print(mList.isEmpty); // 是否爲空 print(mList.isNotEmpty); // 是否不爲空 print(mList.reversed); // 倒序 print(mList..add(6)); // 增 print(mList..addAll([7,9,8])); // 增加多個 print(mList..remove(6)); // 刪 print(mList..removeAt(1)); // 刪除某位置 mList[1] = 66; print(mList); // 改 print(mList..fillRange(1, 3, 9)); //設置第一到第二個的值爲9: print [1, 9, 9, 4, 7, 9, 8] print(mList.contains(9)); // 查: 是否包含 print(mList.indexOf(7)); // 查: 取得元素下標 print(mList..sort()); // 排序 print(mList..shuffle()); // 洗牌(隨機亂序) var mList2 = mList.sublist(0, 3); print(mList2); // 截取 print(mList+mList2); // 合併
Set集合
-
Set – 無重複列表
var dynamicSet = Set(); dynamicSet.add('str'); print('dynamicset: ${dynamicSet}');
-
set1.difference(set2) 返回set1中有但set2中沒有的元素
-
set1.intersection(set2) 返回set1與set2的交集
-
set1.union(set2) 返回set1與set2的並集
-
set1.retainAll([‘xxx’, ‘xxxxx’]) 只保留: set1中只保留這些元素(元素要先在set1中存在)
Map集合
- 與 Java 類似
// 動態類型 var dynamicMap = Map(); dynamicMap['name'] = 'Elvis'; dynamicMap['age'] = 26; dynamicMap[1] = '1'; print(dynamicMap); // 強類型 var mMap = Map<int, String>(); mMap[1] = 'android'; mMap[2] = 'dart'; mMap[3] = 'flutter'; // 其他寫法 var map1 = {1:'android1', 'name':'Elvis1'}; // 常用屬性 print(map1..addAll(mMap)); // 合併, 注意相同的key map1中的數據會被mMap中的數據替換 print(map1.isEmpty); print(map1.isNotEmpty); print(map1.length); print(map1.keys); // key的集合 print(map1.values); //value 的集合
Runes符號字符
Runes runes = new Runes('\u{1f605} \u6211');
var str1 = String.fromCharCodes(runes); //使用String.fromCharCodes顯示字符圖形
print(str1);
String str2 = '\u{1f605} \u6211'; //如果非4個數值,需要把編碼值放到大括號中
print(str2);
Symbols標識符
- 用於反射, 目前反射模塊已被移除