gpt4 book ai didi

dart - 如何在 Dart 中使用 Switch Case 语句

转载 作者:行者123 更新时间:2023-12-04 02:02:07 44 4
gpt4 key购买 nike

我试图了解开关在 Dart 中的工作原理。我有非常简单的代码:

methodname(num radians) {
switch (radians) {
case 0:
// do something
break;
case PI:
// do something else
break;
}
}
不幸的是,这不起作用。如果这样留下错误是:case 表达式必须具有相同的类型(我认为类型是 num,但不是编辑器)。
如果我将 0 更改为 0.0,它会说:开关类型表达式 double 不能覆盖 == 运算符 - 我不知道这是什么意思!
那么这个switch case的实现方法是什么呢?我可能可以将它打开 if/else 但我想知道如何使开关工作以及为什么它首先不起作用。
我正在运行最新的稳定版 DartEditor。
请问有人可以帮忙吗?

最佳答案

使用 '==' 比较 double 值不是很可靠,应该避免(不仅在 Dart 中,而且在大多数语言中)。

你可以做类似的事情

methodname(num radians) {
// you can adjust this values according to your accuracy requirements
const myPI = 3142;
int r = (radians * 1000).round();

switch (r) {
case 0:
// do something
break;
case myPI:
// do something else
break;
}
}

此问题包含一些您可能感兴趣的其他信息
  • comparing float/double values using == operator
  • How should I do floating point comparison?

  • 更多信息:
  • https://www.dartlang.org/docs/spec/latest/dart-language-specification.html#h.50ae78s6gbw2
  • http://floating-point-gui.de/errors/comparison/
  • 关于dart - 如何在 Dart 中使用 Switch Case 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24229290/

    44 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com