前言
Dart学习笔记
安装SDK
注释
标识符
- 由数字、字母、
_
和$
组成
- 不能是数字开头
- 区分大小写
- 不能是关键字和保留字
- 尽量见名知意,变量名用名词,方法名用动词
数据类型
标识符 |
数据类型 |
int |
整型 |
double |
浮点型 |
String |
字符串 |
bool |
布尔 |
List |
列表 |
Map |
哈希表 |
Rune |
符文,用来存储UTF-32编码的字符串 |
Symbols |
用Symbols表示在Dart程序中声明的运算符或标识符 |
字符串型数据
定义字符串
1 2 3 4
| String 字符串名 = '字符串'; String 字符串名 = "字符串"; String 字符串名 = '''字符串'''; String 字符串名 = """字符串""";
|
字符串拼接
1 2 3
| String str1 = ""; String str2 = ""; String str3 = "$str1 $str2";
|
1 2 3
| String str1 = ""; String str2 = ""; String str3 = str1 + str2;
|
判断是否为空字符串
1 2
| String str = ""; str.isEmpty;
|
数值型数据
定义数值型
判断是否为空
判断是否为非数字
布尔型
定义布尔型数据
判断数据类型
1 2 3
| if (变量名 is 数据类型) { ... }
|
运算符
算数运算符
关系运算符
逻辑运算符
赋值运算符
??=
:如果被赋值的变量为空,那么就赋值;如果被赋值的变量不为空,那么就不赋值
复合赋值运算符
??运算符
- 如果变量2的值不为空,就把变量2赋值给变量1
- 如果变量2的值为空,就把值赋值给变量1
自增自减运算符
分支语句
if…else
1 2 3 4 5
| if (条件) { 满足条件时执行 } else { 不满足条件时执行 }
|
1 2 3 4 5 6 7
| if (条件1) { 满足条件1时执行 } else if (条件1) { 满足条件2时执行 } else { 不满足条件时执行 }
|
switch…case
1 2 3 4 5 6 7 8 9 10 11
| switch (变量) { case 值: ... break; case 值: ... break; default: ... break; }
|
三目运算符
1
| 数据类型 变量名 = 表达式 ? 值1 : 值2;
|
循环语句
for
1 2 3
| for (int i = 起始值; i < 结束值; i++) { ... }
|
while
do…while
1 2 3
| do { ... } (循环条件) while;
|
break
continue
数据类型转换
数值类型转换为字符串类型
1 2
| int num = 0; num.toString();
|
字符串类型转换为数值类型
1 2
| int.parse(字符串); double.parse(字符串);
|
异常处理
1 2 3 4 5
| try { ... } catch (err) { print(err); }
|
声明变量
动态数据类型
指定数据类型
定义变量
动态数据类型
指定数据类型
常量
const
- const修饰的常量在编译时就已经确定,永远不会改变
- 通过const修饰的常量如果值相同,那么两者会共享同一块内存空间
final
- final修饰的常量可以先声明再赋值,首次赋值后无法再次改变
- final不仅有const的特性,而且final是惰性初始化的
1 2
| final 数据类型 常量名; 常量名 = 常量值;
|
定义常量构造函数
- 常量构造函数需要使用const修饰
- 常量构造函数必须用于成员属性全部是final修饰的类
- 如果想要共享内存空间,需要在创建对象时通过常量构造方法来创建对象
1 2 3 4 5 6 7 8
| class 类名 { final String name; const 类名(this.name); }
void main() { 数据类型 对象名 = const new 数据类型(); }
|
获取变量的类型
变量是否为NaN
获取长度
符文转换成码元
符文转换成码点
符文转换成字符串
1
| String.fromCharCodes(符文);
|
输出语句
直接输出常量
直接输出变量
在字符串常量中插入变量
Dart检查两个引用是否是同一个对象
完成
参考文献
哔哩哔哩——筱筱知晓