[异常] type ‘int’ is not a subtype of type ‘double’

不可思议,我今天才发现在 Flutter Dart 中用 double 接收 int 数据类型,竟然会报错。

type 'int' is not a subtype of type 'double'

在 Java 这么严谨的语言中,这都是可行的,但是 Dart 却不行。比如这里有一个字段,它有可能是 int 类型,也有可能是 double,具体数值看后端返回,如下。

{
 "xxx" : 14 / 14.5
}

double xxx;
xxx: json["xxx"],

如果后端接口返回的是整型,就会报如上错误。解决起来也很简单,既然已经用 double 接收,那就显性的这个值强行转成 double

xxx: json["xxx"].toDouble()

或者用 num 接收,它是Dart中intdouble类型的父类型,这意味着它可以容纳这两种类型的值。

num xxx;

OK,希望以上能帮到你。

本文由老郭种树原创,转载请注明:https://guozh.net/type-int-is-not-a-subtype-of-type-double/

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注