您好,我是飞镖新手,这里有两个问题
- (
double get getName => name
(和(double getName => name
(之间的区别 - 有时我看到方法名称带有""当我们使用这个概念和我们称之为谢谢
double get name{
}
是所谓的";Getter";。这是一种向该类外部公开值的方法,例如,如果您有一个私有变量_name
,并且您希望它从外部可读,但不能更改,则可以使用getter
double getName(){
}
只是一个正常的函数。箭头语法只是返回值的缩短版本。因此:
int get x => _x;
和
int get x {
return _x;
}
本质上是相同的。有关函数和getter/setter的更多阅读,请查看这些链接。
https://dev.to/newtonmunene_yg/dart-getters-and-setters-1c8fhttps://zetcode.com/dart/function/(还有一节关于箭头功能(
编辑:
对于您的第二个问题:
factory LoginResponse.fromJson(Map<String, dynamic> json) => LoginResponse(
user: User.fromJson(json["user"]),
accessToken: json["access_token"],
);
在这种情况下,这是一个名为"factory
"的命名构造函数;fromJson";其获取CCD_ 6并返回正在使用CCD_ 8构造函数创建的CCD_。
你可以这样称呼它:
var response = new LoginResponse.fromJson(json);
更多关于命名构造函数的信息,请点击这里:
https://www.tutorialspoint.com/dart_programming/dart_programming_classes.htm#:~:text=Dart%20定义%20a%20构造函数%20 with,构造函数%20 is%20为%20您提供%20。
通过使用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;}