我想知道 dart 的开关是如何工作的。我有一个非常简单的代码:
methodname(num radians) {
switch (radians) {
case 0:
// do something
break;
case PI:
// do something else
break;
}
}
不幸的是,这不起作用。如果像这样离开,错误是:case表达式必须具有相同的类型(我认为类型是num,但不是编辑器)。如果我把0改成0.0,它会说:开关类型表达式double不能覆盖==运算符-我不知道这是什么意思!
那么,如何实现这种切换呢?我可以把它打开if/else可能,但我想知道如何使开关工作,为什么它不工作摆在首位。
我正在运行DartEditor的最新稳定版本。
3条答案
按热度按时间v9tzhpje1#
使用'=='比较双精度值不是很可靠,应该避免(不仅在Dart中,而且在大多数语言中)。
你可以这样做
此问题包含一些您可能感兴趣的附加信息
更多信息:
5lhxktic2#
以下是Dart中的开关案例。
问:写一个程序来打印给定数字的乘法表。接受用户的输入并显示其乘法表
fumotvh33#
我认为Dart 3的switch expression为此提供了更简洁的语法。