不应该(或类似的东西)有效吗?和/或我如何以其他方式实现这一目标?
class A {
void init() {initializeSomething()}
}
main() {
var f = A.init;
A a = new A();
a.f();
}
一般来说,我希望存储对实例方法的引用 在某个地方,然后把它叫到其他地方(我可以做的其他大多数事情 语言,包括JavaScript)。我认为功能是一流的 在Dart ...并且没有方法功能?方法不是第一类吗?
只要方法是静态的(在我的情况下没用),它就可以工作但不是实例方法......
答案 0 :(得分:0)
功能和方法不同。您只能在具有此方法的类的实例上调用方法
在您的示例(var f = A.init
)中,您引用了一个类似静态(类)方法的实例方法。
有效的是:
make init
static
class A {
static void init() => initializeSomething();
// or
// static void init() {
// initializeSomething();
// }
}
main() {
var f = A.init;
A a = new A();
a.f();
}
或使用对init()
的实际实例的A
的引用:
class A {
void init() => initializeSomething();
}
main() {
A a = new A();
var f = a.init;
a.f();
}