Dart 语言学习 04
Author : ScorpioDong
1. 字符串
Dart字符串数据类型表示一系列字符。Dart字符串是一系列UTF 16代码单元。
1.1 字符串拼接
字符串采用 +
进行拼接操作:
String str = "hello" + " " + "dart";
print(str);
执行结果:
hello dart
字符串可以使用${}
来插入字符串中Dart表达式的值:
int n = 1 + 2;
String str = "this is number ${n}";
print(str);
执行结果:
this is number 3
1.2 常用字符串属性
属性 | 描述 |
---|---|
codeUnits | 返回此字符串的UTF-16代码单元的不可修改列表 |
isEmpty | 字符串是否为空,布尔值 |
length | 字符串长度 |
1.3 常用字符串方法
方法 | 描述 |
---|---|
toLowerCase() | 将此字符串中的所有字符转换为小写。 |
toUpperCase() | 将此字符串中的所有字符转换为大写。 |
trim() | 返回没有任何前导和尾随空格的字符串。 |
compareTo() | 将此对象与另一对象进行比较。 |
replaceAll() | 用给定值替换与指定模式匹配的所有子字符串。 |
split() | 在指定分隔符的匹配处拆分字符串并返回子字符串列表。 |
substring() | 返回此字符串的子字符串,字符串从startIndex (包括)延伸到endIndex ,exclusive 。 |
toString() | 返回此对象的字符串表示形式。 |
codeUnitAt() | 返回给定索引处的16位UTF-16代码单元。 |
2. 列表
编程中最常使用的集合是数组。Dart以列表(List)对象的形式表示数组。
2.1 固定长度列表
- 声明:
var 列表名 = new List(列表长度);
- 初始化列表:
列表名[索引] = 值;
var list = new List(3);
list[0] = 1;
list[1] = 2;
list[2] = 3;
print(list);
执行结果
[1, 2, 3]
2.2 可变长列表
- 声明:
var 列表名 = [列表初始化元素];
var 列表名 = new List();
- 初始化列表:
- 初始化元素声明的列表:
- 使用[]修改已经存在的元素;
- 使用add()方法在列表尾部添加新的元素(扩容)
- 使用List()声明的元素:
- 先使用add()方法添加元素;
- 添加后的元素使用[]修改
- 初始化元素声明的列表:
2.3 列表常用属性
属性 | 描述 |
---|---|
first | 返回第一个元素 |
isEmpty | 列表是否为空 |
isNotEmpty | 列表是否非空 |
length | 列表长度 |
last | 返回最后一个元素 |
reversed | 返回倒序列表 |
single | 判读列表是否只有一个元素,并返回该元素 |
2.4 列表常用方法
方法 | 描述 |
---|---|
add() | 添加新元素到末尾 |
insert(index) | 添加新元素到指定位置 |
remove(index) | 删除指定位置的元素 |
3. 映射
Dart映射(Map对象)是一个简单的键/值对。映射中的键和值可以是任何类型。映射是动态集合。换句话说,Map可以在运行时增长和缩小。
3.1 声明
- 初始化元素声明:
var 映射名 = {键:值,...}
; - 构造器声明:
var 映射名 = new Map()
,声明并第一次初始化后确定键值类型var 映射名 = new Map<键类型,值类型>()
,声明后立刻确定键值类型
3.2 映射常用属性
属性 | 描述 |
---|---|
Keys | 返回键集合 |
Values | 返回值集合 |
Length | Map大小 |
isEmpty | Map是否为空 |
isNotEmpty | Map是否非空 |
3.2 映射常用方法
方法 | 描述 |
---|---|
addAll() | 向映射中添加其他所有键值对 |
clear() | 从映射中删除所有键值对 |
remove() | 删除一对键值对 |
forEach() | 将for应用于映射的每个键值对 |
4. 枚举
枚举用于定义命名常量值,使用enum关键字声明枚举类型。
enum Status {
none,
running,
stopped,
paused
}
main() {
print(Status.running);
print(Status.running.index);
}
执行结果
Status.running
1