get 方法和常规方法飞镖有什么区别

时间:2021-03-22 10:44:26

标签: flutter dart

美好的一天,我是 dart 新手,我有两个问题

  1. (double get getName => name) , (double getName => name) 之间的区别是什么
  2. 有时我会看到带有“.”的方法名称。当我们使用这个概念和我们称之为 谢谢。

2 个答案:

答案 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

在此处详细了解命名构造函数:

https://www.tutorialspoint.com/dart_programming/dart_programming_classes.htm#:~:text=Dart%20defines%20a%20constructor%20with,constructor%20is%20provided%20for%20you

答案 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;}