Getter/Setter函数的参考

Ali*_*bar 6 dart

我在我的数据模型中定义了以下变量和getter/setter:

class Actor {
    int _x;
    int get x => _x;
    set x(int value) => _x = value;
}
Run Code Online (Sandbox Code Playgroud)

这个泛型类需要一个getter/setter函数指针

class PropertyItem {
   var getterFunction;
   var setterFunction;
   PropertyItem(this.getterFunction, this.setterFunction);
}
Run Code Online (Sandbox Code Playgroud)

如何将X的getter/setter函数的引用传递给PropertyItem类?

// Something like this
var item = new PropertyItem(x.getter, x.setter);
Run Code Online (Sandbox Code Playgroud)

编辑:更新了一个更清晰的问题

小智 7

简而言之,你没有.吸气剂和制定者是不可提取的 - 它们与仅有一个领域无法区分(当然,如果你不做副作用).

在您的示例中,您可以这样做:

class Actor {
  int x;
} 
Run Code Online (Sandbox Code Playgroud)

并获得完全相同的效果.

对于一些演员"演员",你想要的是自己制作这些函数:

var item = new PropertyItem(() => actor.x, (v) { actor.x = v; });
Run Code Online (Sandbox Code Playgroud)

关于普遍撕下的这个提议已经获得批准,很可能很快就会实施,并且可以让吸气剂和制定者闭合,如:

var item = new PropertyItem(actor#x, actor#x=);
Run Code Online (Sandbox Code Playgroud)


Cut*_*tch 5

在 Dart 中,以下内容:

class Foo {
  int _offsetX;
  int get offsetX => _offsetX;
  set offsetX(int ox) => _offsetX = ox;
}
Run Code Online (Sandbox Code Playgroud)

相当于:

class Foo {
  int offsetX;
}
Run Code Online (Sandbox Code Playgroud)