美好的一天,我是 dart 新手,我有两个问题
double get getName => name
) , (double getName => name
) 之间的区别是什么答案 0 :(得分:1)
longest
就是所谓的“Getter”。这是将值暴露给该类之外的一种方式,例如,如果您有一个私有变量 double get name{
}
并且您希望它可以从外部读取但不可更改,您可以使用 {{1} }
_name
只是一个普通的函数。 箭头语法只是返回值的简化版本。 所以:
getter
和
double getName(){
}
本质上是一样的。有关函数和 getter/setter 的更多阅读,请查看这些链接。
https://dev.to/newtonmunene_yg/dart-getters-and-setters-1c8f https://zetcode.com/dart/function/(还有一个关于箭头函数的部分)
编辑:
对于你的第二个问题:
int get x => _x;
在这种情况下,这是一个名为“fromJson”的命名 int get x {
return _x;
}
构造函数,它接受一个 factory LoginResponse.fromJson(Map<String, dynamic> json) => LoginResponse(
user: User.fromJson(json["user"]),
accessToken: json["access_token"],
);
并返回一个使用 factory
创建的 Map<String,dynamic>
构造函数。
你会这样称呼它:
LoginResponse
在此处详细了解命名构造函数:
答案 1 :(得分:0)
通过使用 double get getName => name
,您将 'getName' 定义为一个 getter。您从类外部请求 getname 值的地方。每当您调用 getName
时,都会返回 name
的值。
关于double getName => name
,应该这样写double getName() => name
。
通过使用它,您基本上是在告诉您的代码:
double getName(){
return name;}
意思是,getName 的值是从函数返回的。
如果你写了 double getname(int x) => x + name
将运行为:
double getName(int x){
return x + name;}