不可思议,我今天才发现在 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中int
和double
类型的父类型,这意味着它可以容纳这两种类型的值。
num xxx;
OK,希望以上能帮到你。
本文由老郭种树原创,转载请注明:https://guozh.net/type-int-is-not-a-subtype-of-type-double/