1

List<int>在 Dart 中,用 new 操作符初始化 a 和用字面量初始化它有什么区别?

情况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,但使用字面量初始化的实例被序列化为类型为 12 的 Dart_CObject 对象。

4

1 回答 1

1

有一个微小的区别——在第一种情况下,您正在创建一个固定大小的列表,而在第二种情况下,列表是可增长的。如果您在第一种情况下使用“new List()”,则没有区别。我不是 100% 确定,因为我现在无法测试它,但这就是我理解它的方式(我确信 VM 具有用于固定大小列表和可增长列表的单独类)。

于 2012-09-08T08:34:38.060 回答