feelivn Asked:2025-01-12 04:31:40 +0800 CST2025-01-12 04:31:40 +0800 CST 2025-01-12 04:31:40 +0800 CST 需要关键字 772 请解释该关键字的用途required。构造函数中有三种赋值类型:位置赋值、默认赋值和命名赋值required(命名为) 我试图寻找信息,寻找问题的答案,但找不到,所以我不得不联系这里。为什么我不能只写一个命名的Person({this.name, this.age}),为什么我需要它required?我创建了一个实例(见图),编译器开始抱怨。即使两个参数都存在。 我已经对一个争论保持沉默了。很明显,如果构造函数有两个参数,而我在主代码中只写名称,编译器应该会抱怨。这是很自然的。并非所有参数都已分配。为什么这里需要它? flutter 1 个回答 Voted Best Answer Falchio 2025-01-22T21:03:01+08:002025-01-22T21:03:01+08:00 据我了解,主要问题是: 为什么我不能只写一个命名的 Person({this.name, this.age}),为什么我需要必需的? 因为使用具有此语法的构造函数Person({this.name, this.age})意味着参数name和age是可选的。 并且它们应该有一些默认值: class Person{ String name; int age; Person({this.name='Vova', this.age=30}) } 或者类字段应该是nullable: class Person{ String? name; int? age; Person({this.name, this.age}) } 由于情况并非如此,考虑到类字段non-nullable: var person = Person(); 让我提醒您,参数({this.name, this.age})现在是可选的。 因此这个词是必需的required。 总的来说,我对语言的设计也有很多疑问Dart,我只是出于必要才写它。
据我了解,主要问题是:
因为使用具有此语法的构造函数
Person({this.name, this.age})
意味着参数name
和age
是可选的。并且它们应该有一些默认值:
或者类字段应该是
nullable
:由于情况并非如此,考虑到类字段
non-nullable
:让我提醒您,参数
({this.name, this.age})
现在是可选的。因此这个词是必需的
required
。总的来说,我对语言的设计也有很多疑问
Dart
,我只是出于必要才写它。