两者之间有明显区别吗?
var example = ["some","content",11,45,true];
List example = ["some","content",11,45,true];
答案 0 :(得分:0)
使用var example
时,example
的类型(静态和运行时)将从分配的值["some","content",11,45,true]
(或实际上是List
推断出)
不会使用List<dynamic>
推断类型,而是将使用显式提供的类型List example
(或者如果没有提供通用类型,则实际上是List
)。
对于List<dynamic>
,推断的类型为var example = ["some","content","11","45","true"];
。
答案 1 :(得分:0)
据我所知,尽可能简单;
列表是一种数据类型,就像Dart中的其他一些内置类型,例如 ConstraintSet constraintSet = new ConstraintSet();
constraintSet.clone(main_layout);
constraintSet.connect(R.id.firstButton, ConstraintSet.START, R.id.guideline4, ConstraintSet.END);
constraintSet.connect(R.id.firstButton, ConstraintSet.TOP, R.id.guideline, ConstraintSet.BOTTOM);
constraintSet.applyTo(main_layout);
,String
和int
。使用bool
初始化变量时,分配的值必须为List
类型。即您不能这样做
List
因为您要在此处将String值分配给List变量或对象。
而 var 是一种在不指定变量类型的情况下声明变量的方法。对于List example = "sometext";
,将接受所有类型的数据类型。
两者之间有明显区别吗?
var
这两种声明方法都具有相同的效果,除非,您希望在生命周期内为var example = ["some","content",11,45,true];
List example = ["some","content",11,45,true];
以外的其他类型的example
分配一个值。即,如果您打算将来分配List
或int
或double
或其他任何值给string
,请使用第一种方法,否则可以使用其中任何一种。