最开始Dart中的required关键词用于注解 @required
现在Dart中的required关键词已经作为内置修饰符。
主要用于允许根据需要标记任何命名参数(函数或类),使得它们不为空。因为可选参数中必须有个 required 参数或者该参数有个默认值。
String printUserInfo(String username, {int age=10, String sex="男"}) {//行参
return "姓名:$username---性别:$sex--年龄:$age";
}
String printInfo(String username, {required int age, required String sex}) {//行参
return "姓名:$username---性别:$sex--年龄:$age";
}
void main(args) {
print(printUserInfo('张三'));
print(printUserInfo('张三',age: 20,sex: "女"));
//age 和 sex必须传入
print(printInfo('张三',age: 22,sex: "女"));
}
表示 name 和age 是必须传入的命名参数
class Person {
String name;
int age;
Person({required this.name,required this.age}); //表示 name 和age 必须传入
String getName() {
return "${this.name}---${this.age}";
}
}
void main(args) {
Person p=new Person(
name: "张三",
age: 20
);
print(p.getName());
}
// name 可以传入也可以不传入 age必须传入
class Person {
String? name; //可空属性
int age;
Person({this.name,required this.age}); //表示 name 和age 必须传入
String getName() {
return "${this.name}---${this.age}";
}
}
void main(args) {
Person p=new Person(
name: "张三",
age: 20
);
print(p.getName()); //张三---20
Person p1=new Person(
age: 20
);
print(p1.getName()); //null---20
}