在Dart中,使用new运算符初始化List<int>
并使用文字初始化它有什么区别?
案例1:
List<int> args = new List<int>(2);
args[0] = 1;
args[1] = 2;
案例2:
List<int> args = <int>[1, 2];
当我将args发布到本机服务端口时,服务端口将收到不同的消息。使用new运算符初始化的List实例被序列化为Dart_CObject :: kIntArray,但是使用literal初始化的实例被序列化为类型为12的Dart_CObject对象。
答案 0 :(得分:1)
有一个微小的区别 - 在第一种情况下,您正在创建固定大小的列表,而在第二种情况下,列表是可增长的。如果您在第一种情况下使用'new List()',则没有区别。我不是100%肯定,因为我现在无法测试它,但这是我理解它的方式(我确信VM有固定大小的列表和可增长列表的单独类)。