【发布时间】:2014-10-17 04:17:48
【问题描述】:
非常简单的问题。我有无用的课:
class Useless{
double field;
Useless(this.field);
}
然后我犯下大罪并致电new Useless(0);
在检查模式下(这是我运行测试的方式)会爆炸,因为 'int' 不是 'double' 类型的子类型。
现在,如果我使用 new Useless(0.0) 就可以了,但老实说,我花了很多时间来纠正我的测试,到处都是 .0,我觉得这样做很愚蠢。
作为临时措施,我将构造函数重写为:
class Useless{
double field;
Useless(num input){
field = input.toDouble();
}
}
但这很丑陋,如果经常调用我恐怕会很慢。有没有更好的方法来做到这一点?
【问题讨论】:
-
为什么需要双份?你不能到处使用
num吗? -
遵循 Dart 风格指南:“在性能敏感的代码中,更喜欢使用 double 或 int 而不是 num 进行参数类型注释”
-
这对我来说看起来不像性能敏感代码。我认为您应该决定是否需要一个通用数字,或者您是否真的需要 int 或 double,然后您应该将所有代码更改为 num、int 或 double。
-
@Robert 使用
int和double而不是num更适合传达意图。为什么停止使用num?我们可以将所有变量设置为dynamic并一键消除所有强类型的烦恼...
标签: dart