Dart 命名构造函数
构造函数既可以与是默认构造函数(函数名与类名同名,最多存在一个),也可以是命名构造函数(函数名以类名.标志符出现)。
在 Dart 开发者本身没有显示提供构造函数时,编译器会自动创建一个无参数的构造函数。需要更多构造函数时就需要命名构造函数来进行实现。
1 | // Dart developer can user named constructors to create more than one constructors. |
事实上 Person.clonePerson() 的作用相当于复制构造函数。这个方法创造并返回了一个 personBob 的副本。我们可以来看一下以下这个有趣的栗子🌰
1 | class Person { |
以上程序提供了一个复制构造函数的实现,由于 = 操作符创建的是对象的引用,本身不具备创建对象的功能并且无法被重载。因此一旦对象本身需要创建大量的副本,开发者就需要显式地提供复制构造函数。