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标识符
- 用于反射, 目前反射模块已被移除