我是DART的新手,我可以看到DART有num,它是intdouble的超类(而且只有这两个,因为将num作为其他类的子类是编译时错误).

到目前为止,我看不出使用num而不是intdouble有什么好处,有没有更好的或甚至推荐使用num的情况?或者只是为了避免考虑数字的类型,以便编译器为我们决定数字是int还是double

推荐答案

例如,一个好处

假设您需要定义一个双变量,如下所示

double x ;

如果你将x定义为双精度,当你将其赋值时,你必须指定它,例如9.876.

x = 9.876;

到目前一切尚好.

现在您需要为它赋值,比如9

你不能这样编码

x = 9;  //this will be error before dart 2.1

因此您需要将其编码为

x = 9.0;

但是如果您将x定义为Num

您可以使用

x = 9.0;

x = 9;

so it is a convenient way to avoid these type mismatch errors between integer 和 double types in dart.

两者都有效.

这是DART 2.1之前的情况,但仍然可以帮助解释这一概念

判断this可能是相关的

Dart相关问答推荐

我们应该将多少代码放入构造函数中?

在 Dart 中使用隔离优于异步的优势

播放和暂停 Flutter 动画

跳过 JavaScript 直接进入 Dart

Dart 1.8 中的异步/等待功能

如何在 Flutter/dart 中获取一周中特定日期的日期?

Flutter-如何更改文本字段边框 colored颜色 ?

为什么我不能将数字转换为双精度数?

Flitter中的谷歌 map 没有出现

Flutter 错误:The _ScaffoldLayout custom multichild layout delegate forgot to lay out the following child

Flutter-当文本字段有焦点时隐藏提示文本

如何在 flutter 中对json进行字符串化

如何突出显示所选卡片的边框?

dart和下划线

dart 如何创建、监听和发出自定义事件?

如何在 Angular.Dart 中以编程方式添加组件?

如何在 Dart 中以正确的方式重定向和重新加载?

我应该更喜欢迭代 Map.entries 还是 Map.values?

Exception: Concurrent modification during iteration: Instance(length:17) of '_GrowableList';

将多张map合并/合并为一张map