Has*_*sen 7 switch-statement dart flutter
我针对其他语言查看了一些与此相关的问题,有些建议使用,final但这似乎不适用于 Dart。
我正在传递参数,所以 switch 语句肯定不能只包含常量吗?switch语句,如果一个很像语句问,如果它是或not..ie它是未知的,所以我看不出他们是否有是常数switch语句可能是有用的......?
setCategory(arga, argb) {
int result;
switch (true) {
case (arga >= 0 && arga < 3 && argb < 35):
result = 16;
break;
case (arga >= 0 && arga < 3 && argb >= 35):
result = 15;
break;
etc
Run Code Online (Sandbox Code Playgroud)
它返回Case expressions must be constant有关 case 表达式中 arga 和 argb 值的错误。解决此问题的最佳方法是什么,还是必须使用 if 语句?
lrn*_*lrn 11
switch case 表达式肯定是常量。
您必须使用if/then链根据非常量值进行多项测试。
您不能在 switch case 中使用来自周围函数的参数。Dart switch 语句不支持您在此处尝试执行的操作。
Dart switch 语句有意保持非常简单,以便编译器可以在编译时知道所有可能的情况。这就是为什么它们必须是编译时常量。
Switch 语句对于某些类型的切换仍然很有用,例如在枚举上:
enum Nonse { foo, bar, baz; }
String fooText(Nonse non) {
switch (non) {
case Nonse.foo: return "foo";
case Nonse.bar: return "bar";
case Nonse.baz: return "baz";
}
throw ArgumentError.notNull("non");
}
Run Code Online (Sandbox Code Playgroud)
您还可以切换常量字符串值或整数值。
Switch Case 有一些规则
默认情况是可选的。
所有 case 表达式必须是唯一的。
case 语句只能包含常量。它不能是变量或表达式。
变量的数据类型和 case 表达式必须匹配。
switch 中可以有任意数量的 case 语句。
你应该使用“If Else”语句
| 归档时间: |
|
| 查看次数: |
9006 次 |
| 最近记录: |