Dart 中的空安全
Null Safety in Dart
最近 dart 发布了名为 null safety 的新功能。我对如何使用命名参数创建构造函数有点困惑。当我使用大括号时,出现错误。
这是我的代码:
void main() {
}
class Student {
String name = '';
num age = 0;
List<num> marks = [];
Student({
this.name,
this.age,
this.marks
});
void printStudentDetails() {
print('Student Name: ' + this.name);
}
}
这是我得到的错误:
由于您的 class 的属性不可为空(例如,类型是 String
而不是 String?
),您需要将 required
添加到属性在构造函数中,或者提供一个默认值(这似乎是你想要做的)。
Student({
this.name = '',
this.age = 0,
this.marks = [],
});
您现在也可以将您的属性设为最终属性:
final String name;
final num age;
final List<num> marks;
或者,使用所需的关键字:
Student({
required this.name,
required this.age,
required this.marks,
});
最近 dart 发布了名为 null safety 的新功能。我对如何使用命名参数创建构造函数有点困惑。当我使用大括号时,出现错误。
这是我的代码:
void main() {
}
class Student {
String name = '';
num age = 0;
List<num> marks = [];
Student({
this.name,
this.age,
this.marks
});
void printStudentDetails() {
print('Student Name: ' + this.name);
}
}
这是我得到的错误:
由于您的 class 的属性不可为空(例如,类型是 String
而不是 String?
),您需要将 required
添加到属性在构造函数中,或者提供一个默认值(这似乎是你想要做的)。
Student({
this.name = '',
this.age = 0,
this.marks = [],
});
您现在也可以将您的属性设为最终属性:
final String name;
final num age;
final List<num> marks;
或者,使用所需的关键字:
Student({
required this.name,
required this.age,
required this.marks,
});