function - ShenYj/ShenYj.github.io GitHub Wiki
-
Dart 定义函数时,形参的类型是可以省略的,但是建议明确形参类型
bool test(int number) { return number == 1; } /// 省略形参的类型 bool test(number) { return number == 1; }
-
对于仅包含一个表达式的函数,您可以使用
=> expr
语法bool test(int number) => number == 1;
=> expr
语法是{ return expr; }
的缩写。=>
符号有时被称为箭头语法。 -
为形参提供默认值
/// Sets the [bold] and [hidden] flags ... void enableFlags({bool bold = false, bool hidden = false}) {...}
-
可选参数
/// Sets the [bold] and [hidden] flags ... void enableFlags({bool? bold, bool? hidden}) {...} enableFlags(bold: true, hidden: false); enableFlags(bold: true); /// hidden 为 null enableFlags(); /// bold 和 hidden 为 null
如果调用时不传参,默认就是 null
-
必传参数
如果希望命名参数是强制性的,要求调用者为参数提供值,可以使用
required
关键字const Scrollbar({super.key, required Widget child});
-
匿名参数
void test(String name, {int age, String sex = '男'}); test('张三',age: 20, sex: '未知');
-
匿名函数
var printNum = (int n){ ... }; printNum();
-
自执行函数
/// 带有一次参数 ((int n){ print('自执行函数'); })(); /// 无参数 ((){ print('自执行函数'); })();
-
闭包
func() { var a = 123; return (){ a++; print(a); }; } var b = func(); b(); /// 124 b(); /// 125 b(); /// 126
参考资料: Dart: Functions