以下代码在使用 Null Safety 编译时失败,出现以下错误:
参数namedParam
不能有值,null
因为它的类型,并且没有提供非空默认值。
void main() {
Foo(callbackWithNamedParam: ({namedParam}) {
print('param=$namedParam');
}).callback();
}
class Foo {
final void Function({required int namedParam}) callbackWithNamedParam;
Foo({required this.callbackWithNamedParam});
void callback() {
callbackWithNamedParam(namedParam: 10);
}
}
在没有 Null Safety 的情况下编译时,代码编译得非常好。
编译失败的具有Null Safety 的DartPad
没有 Null Safety 的DartPad编译良好
有没有办法解决它:
- 无需切换到位置参数
AND - 不制作命名参数
nullable
?