跳到主要內容

constant_pattern_never_matches_value_type

匹配的值型別 '{0}' 永遠不可能等於型別為 '{1}' 的此常量。

描述

#

當常量模式永遠無法匹配與其進行測試的值時,分析器會產生此診斷資訊,因為已知常量的型別與值的型別永遠不匹配。

示例

#

以下程式碼會產生此診斷資訊,因為常量模式 (true) 的型別是 bool,而要匹配的值 (x) 的型別是 int,布林值永遠不能匹配整數

dart
void f(int x) {
  if (x case true) {}
}

常見修復方法

#

如果值的型別正確,則重寫模式以使其相容

dart
void f(int x) {
  if (x case 3) {}
}

如果常量的型別正確,則重寫值以使其相容

dart
void f(bool x) {
  if (x case true) {}
}