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) {
// ...
}
}