Updated on 十二月 29, 2021
Dart笔记
一直稀里糊涂地用,没仔细学习一下。记录一下在官网学习的笔记吧。
sync* 、 async* 、yield
标记为sync*的函数返回一个Iterable,用例如下:
void main() { final numbers = getRange(1, 10); for (var value in numbers) { print('$value'); } } Iterable<int> getRange(int start, int end) sync* { for (int i = start; i <= end; i++) { yield i; } }
async*和sync*类似,不过是异步的,返回值会被包裹在Stream中,用例如下:
Stream<int> countForOneMinute() async* { for (int i = 1; i <= 60; i++) { await Future.delayed(const Duration(seconds: 1)); yield i; } } main() async { await for (int i in countForOneMinute()) { print(i); // 打印 1 到 60,一个秒一个整数 } }
函数
=> 表达式 是 { return 表达式; } 的简写
匿名函数
([[类型] 参数[, …]]) {
函数体;
}
运算符
~/ 除并取整
命名式构造函数
const double xOrigin = 0; const double yOrigin = 0; class Point { double x = 0; double y = 0; Point(this.x, this.y); // Named constructor Point.origin() : x = xOrigin, y = yOrigin; }