戳这里了解《Flutter入门与实战》专栏,持续更新、系统学习!
前言
Dart 语言的构造函数和其他语言会有些不同,我们列举一下 Dart 中的构造函数的几种形式。
// 最常见的形式
class Person {
String name;
int age;
Person(this.name, this.age);
}
// 命名构造函数
class Person {
late String name;
late int age;
Person.fromJson(Map<String, dynamic> json) {
name = json['name'];
age = json['age'];
}
}
// 工厂构造函数
class Person {
late String name;
static final Map<String, Person> _cache =
<String, Person>{};
factory Person.withName(String name) {
return _cache.putIfAbsent(
name, () => Person._internal(name));
}
Person._internal(this.name);
}
// 常量构造函数
class Person {
final String name;
final int age;
const Person(this.name, this.age);
}
// 使用其他构造函数构造
class Person {
String name;
int age;
Person(this.name, this.age);
Pe