Flutter Dart列表<;e>;课堂提问

Flutter Dart列表<;e>;课堂提问,flutter,dart,Flutter,Dart,对于以下打印,两个打印结果相同。但是List test=[]之间有什么区别吗和列表test2=List() void main() { List<Dog> test = <Dog>[]; List<Dog> test2 =List<Dog>(); Dog dog = Dog(10); test.add(dog); print(test[0].age); test2.add(dog); print(test2[0]

对于以下打印,两个打印结果相同。但是
List test=[]之间有什么区别吗
列表test2=List()

void main() {

  List<Dog> test = <Dog>[];
  List<Dog> test2 =List<Dog>();

  Dog dog = Dog(10);

  test.add(dog);
  print(test[0].age);

  test2.add(dog);
  print(test2[0].age);
}


class Dog {

  Dog({this.age});
  int age;

}
void main(){
列表测试=[];
List test2=List();
狗=狗(10);
测试。添加(狗);
打印(测试[0]。年龄);
测试2.添加(狗);
打印(test2[0]。年龄);
}
班犬{
狗({this.age});
智力年龄;
}

两者之间没有区别。两者都创建了一个可扩展列表,如文档所示

由new list()或[]返回的默认可增长列表保留一个内部缓冲区,并在必要时增长该缓冲区。这保证了一系列添加操作将在摊销的固定时间内执行。直接设置长度可能需要与新长度成比例的时间,并且可能会更改内部容量,因此后续添加操作将需要立即增加缓冲区容量

与上面不同的是,如果您想创建一个不可增长的列表

因为你会用

List<Dog> fixedLengthList = new List(5);
列表固定长度列表=新列表(5);

在固定长度列表中,尝试使用可更改列表长度的操作时会发生错误。

同样,更多的人使用
[]
但是,指定局部变量的类型是一种不好的做法。在Dart中,建议
避免类型注释初始化局部变量
。这不是一个好建议。