对于以下代码:
void debugger(String message, int lineNum) {
// ...
}
调用时必须提供两个参数:
debugger('A bug!', 55);
如果将参数改为命名参数,则参数变为可选:
void debugger({String message, int lineNum}) {
// ...
}
调用:
debugger(message: 'A bug!', lineNum: 44);
类的构造函数参数也可以使用这种语法。
如果一个函数参数很多,比如,有10个,使用位置参数语法时,必须记住什么位置是什么参数,十分麻烦,但是由于命名参数使用名称,参数的位置顺序变得无关紧要,从而避免了这个问题。
https://flutterbyexample.com/lesson/function-arguments-default-optional-named