无法理解变量如何成为一个函数。
示例代码。
import 'dart:mirrors';
class Foo {
int baz;
}
void main() {
var name = "baz=";
var typeMirror = reflectClass(Foo);
for(var member in typeMirror.instanceMembers.values) {
print(MirrorSystem.getName(member.simpleName));
if(MirrorSystem.getName(member.simpleName) == name) {
if(member is MethodMirror) {
print("================================");
print("Info about METHOD $name");
print("isSetter: ${member.isSetter}");
print("isVariable: false, because it is a method");
print("================================");
}
}
}
}
==
hashCode
_identityHashCode
toString
noSuchMethod
runtimeType
_cid
_leftShiftWithMask32
baz
baz=
================================
Info about METHOD baz=
isSetter: true
isVariable: false, because it is a method
================================
我在维基百科上发现了这个信息。
在面向对象的编程中,实例变量是在类中定义的变量(即成员变量)。
在面向对象的编程中,成员变量(有时称为成员字段)是与特定类关联的变量,可以对其所有方法使用。
我还问了另一个问题。
在面向对象的编程语言Dart中,实例变量(即成员变量)不是实例的成员?至少在“dart:mirrors”库的解释中。
答案 0 :(得分:2)
显然,公共字段会自动生成getter和setter方法。
我还找到了final Map<Symbol, MethodMirror> instanceMembers
目的是捕获构成实例API的那些成员。因此不包括字段,但包括由字段隐式引入的getter和setter。