下面是一些简单的 Dart 代码:
class P {
var name = myname();
String myname() => "PPP";
}
main() {
new P();
}
运行时报此错误:
错误:第 2 行 pos 14:非法隐式访问接收器“this” 变量名 = 我的名字(); ^
是什么导致了这个错误?
下面是一些简单的 Dart 代码:
class P {
var name = myname();
String myname() => "PPP";
}
main() {
new P();
}
运行时报此错误:
错误:第 2 行 pos 14:非法隐式访问接收器“this” 变量名 = 我的名字(); ^
是什么导致了这个错误?
您正在尝试在静态上下文中评估非静态方法(请参阅注释)。您可以将方法标记为static
:
class P {
var name = myname();
static String myname() => "PPP";
}
或者在非静态上下文中评估代码:
class P {
var name;
P() {name = myname();}
static String myname() => "PPP";
}
注意:这里的“静态上下文”概念是我的心智模型,它可能与 Dart 的工作方式完全匹配,也可能不完全匹配。this
注意在字段初始化器中显式或隐式地根本不可用可能更正确。