跳到主内容

switch_expression_not_assignable

switch 表达式的类型“{0}”不可赋值给 case 表达式的类型“{1}”。

描述

#

switch 语句中表达式的类型不可赋值给 case 子句中表达式的类型时,分析器会产生此诊断信息。

示例

#

以下代码会产生此诊断信息,因为 s 的类型(String)不可赋值给 0 的类型(int

dart
void f(String s) {
  switch (s) {
    case 0:
      break;
  }
}

常见修复方法

#

如果 case 表达式的类型正确,则更改 switch 语句中的表达式以具有正确的类型

dart
void f(String s) {
  switch (int.parse(s)) {
    case 0:
      break;
  }
}

如果 switch 表达式的类型正确,则更改 case 表达式以具有正确的类型

dart
void f(String s) {
  switch (s) {
    case '0':
      break;
  }
}