我是DART的新手,我可以看到DART有num
,它是int
和double
的超类(而且只有这两个,因为将num
作为其他类的子类是编译时错误).
到目前为止,我看不出使用num
而不是int
或double
有什么好处,有没有更好的或甚至推荐使用num
的情况?或者只是为了避免考虑数字的类型,以便编译器为我们决定数字是int
还是double
?
我是DART的新手,我可以看到DART有num
,它是int
和double
的超类(而且只有这两个,因为将num
作为其他类的子类是编译时错误).
到目前为止,我看不出使用num
而不是int
或double
有什么好处,有没有更好的或甚至推荐使用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可能是相关的