void main() {
foo(bar: 1);
}
void foo({@required int bar}) {} // Error
错误:The parameter 'bar' can't have a value of 'null' because of its type, and no non-null default value is provided.
我用
bar
注释@required
,它也是不可为空的。这意味着我将始终需要为bar
提供一个非空值。那么,为什么编译器要求我提供默认值?
最佳答案
@required
是来自meta
包的旧注释标记,是作为从分析器发出警告的一种方式引入的。使用NNBD,已将其更改为名为required
的关键字。您可以在以下链接中了解有关此关键字的更多信息:
https://dart.dev/null-safety/understanding-null-safety#required-named-parameters
关于dart - 为什么用@required注释变量时需要默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63439242/