跳到主要內容

cast_from_nullable_always_fails

此型別轉換將始終丟擲異常,因為可空的區域性變數“{0}”未賦值。

描述

#

當具有可空型別的區域性變數未賦值並被轉換為非可空型別時,分析器會產生此診斷。由於該變數未賦值,其預設值為 null,導致型別轉換丟擲異常。

示例

#

以下程式碼會產生此診斷,因為變數 x 在已知其值為 null 時被轉換為非可空型別 (int)

dart
void f() {
  num? x;
  x as int;
  print(x);
}

常見修復方法

#

如果變數在型別轉換前期望有一個值,則新增初始化或賦值

dart
void f() {
  num? x = 3;
  x as int;
  print(x);
}

如果變數不期望被賦值,則移除型別轉換

dart
void f() {
  num? x;
  print(x);
}