dart - 为什么用@required注释变量时需要默认值?

标签 dart

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/

相关文章:

flutter - 无法在Android Studio中运行Flutter应用

dart - Appbar 前导属性中的文本小部件 - 但显示不正确

flutter - dart 注释中的转义字符

dart - 在保持其hashCode的同时将可调用对象转换为Function

Dart 可观察列表,不会在更改时删除并重新插入所有元素

dart - 如何使 FadeInImage 变成圆形?

google-app-engine - 是否有任何官方计划在 Google App Engine 上支持 Dart?

flutter - 如何使该页面在所有屏幕上响应?

flutter - flutter 文本的宽度和高度与父项匹配

android - 在 Dart/Flutter 中传递返回对象的函数不起作用