【笔记】Dart学习笔记

前言

Dart学习笔记

安装SDK

1
brew install dart-sdk

注释

1
2
// 单行注释
/* 多行注释 */

标识符

  • 由数字、字母、_$组成
  • 不能是数字开头
  • 区分大小写
  • 不能是关键字和保留字
  • 尽量见名知意,变量名用名词,方法名用动词

数据类型

标识符 数据类型
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
int num = 0;
1
double num = 0.0;

判断是否为空

1
num == null;

判断是否为非数字

1
num.isNaN;

布尔型

定义布尔型数据

1
bool flag = true;
1
bool flag = false;

判断数据类型

1
2
3
if (变量名 is 数据类型) {
...
}

运算符

算数运算符

  • +-*/%

关系运算符

  • ><>=<===!=

逻辑运算符

  • &&||!

赋值运算符

  • =??=

??=:如果被赋值的变量为空,那么就赋值;如果被赋值的变量不为空,那么就不赋值

复合赋值运算符

  • +=-=*=/=%=~=

??运算符

1
数据类型 变量1 = 变量2 ?? 值;
  • 如果变量2的值不为空,就把变量2赋值给变量1
  • 如果变量2的值为空,就把值赋值给变量1

自增自减运算符

  • ++--

分支语句

if…else

1
2
3
if (条件) {
满足条件时执行
}
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

1
2
3
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);
}

声明变量

动态数据类型

1
var 变量名;

指定数据类型

1
数据类型 变量名;

定义变量

动态数据类型

1
var 变量名 = 变量值;

指定数据类型

1
数据类型 变量名 = 变量值;

常量

const

  • const修饰的常量在编译时就已经确定,永远不会改变
  • 通过const修饰的常量如果值相同,那么两者会共享同一块内存空间
1
const 数据类型 常量名 = 常量值;

final

  • final修饰的常量可以先声明再赋值,首次赋值后无法再次改变
  • final不仅有const的特性,而且final是惰性初始化的
1
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 数据类型();
}

获取变量的类型

1
对象.runtimeType;

变量是否为NaN

1
对象.isNaN;

获取长度

  • 获取列表或哈希表的长度
1
列表对象.length;

符文转换成码元

1
字符串.codeUnits;

符文转换成码点

1
字符串.runes;

符文转换成字符串

1
String.fromCharCodes(符文);

输出语句

直接输出常量

1
print("");

直接输出变量

1
print(变量名);

在字符串常量中插入变量

1
print("$变量名");
  • 如果是由.分隔的属性名,需要添加{}
1
print("$this.属性名");

Dart检查两个引用是否是同一个对象

1
identical(对象名, 对象名);

完成

参考文献

哔哩哔哩——筱筱知晓