【发布时间】:2022-01-08 19:05:48
【问题描述】:
我昨天刚开始学习 Dart。我想知道 Dart 中的普通方法和 setter 方法有什么区别?例如,我有以下演示代码。
class Person {
String? firstName;
String? lastName;
// Normal method
fullName(String? name) {
var names = name!.split(' ');
this.firstName = names[0];
this.lastName = names[1];
}
}
main() {
Person p = Person();
p.fullName('John Smith');
print("${p.firstName} ${p.lastName}");
}
还有:
class Person {
String? firstName;
String? lastName;
// Setter
set fullName(String? name) {
var names = name!.split(' ');
this.firstName = names[0];
this.lastName = names[1];
}
}
main() {
Person p = Person();
p.fullName = 'John Smith';
print("${p.firstName} ${p.lastName}");
}
区别似乎只是调用语法。除此之外,还有其他区别吗?
【问题讨论】:
-
它可以与
get配对。虽然也许这也是“只是语法”.. -
使用setter,你只能接受一个位置参数,它只能返回
void。