unchecked_use_of_nullable_value
可空表达式不能用作条件。
可空表达式不能在 for-in 循环中用作迭代器。
可空表达式不能用于展开操作符。
可空表达式不能用于 yield-each 语句。
该函数不能无条件调用,因为它可能为 'null'。
方法 '{0}' 不能无条件调用,因为接收者可能为 'null'。
运算符 '{0}' 不能无条件调用,因为接收者可能为 'null'。
属性 '{0}' 不能无条件访问,因为接收者可能为 'null'。
描述
#分析器在类型为可能不可空的表达式在未首先验证值不为 null
的情况下被解引用时产生此诊断。
示例
#以下代码产生此诊断,因为 s
在被引用时可能为 null
dart
void f(String? s) {
if (s.length > 3) {
// ...
}
}
常见修复方法
#如果该值确实可能为 null
,则添加一个测试以确保仅在值不为 null
时访问其成员
dart
void f(String? s) {
if (s != null && s.length > 3) {
// ...
}
}
如果表达式是变量且该值不应为 null
,则将变量的类型更改为不可空类型
dart
void f(String s) {
if (s.length > 3) {
// ...
}
}
如果您认为表达式的值不应为 null
,但无法更改变量的类型,并且愿意承担错误时运行时抛出异常的风险,则可以断言该值不为 null
dart
void f(String? s) {
if (s!.length > 3) {
// ...
}
}