Невозможно понять, как переменная может быть функцией.Dart Виртуальная машина не гарантирует, что переменная не может быть переменной, но может быть функцией?
Образец кода.
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 переменная экземпляра (т. Е. Переменная-член) не является членом экземпляра? По крайней мере, в интерпретации библиотеки «дарт: зеркала».
Поля в Дарте - это методы, но не переменные? – mezoni
Относительно вашего последнего изменения вашего ответа. Переменные экземпляра не являются членами экземпляра? – mezoni
Нет, они ** являются ** не методами, но даже если вы не записываете их явно в код, то получатели и сеттеры генерируются для них (в дополнение к полям), а экземпляры-члены не возвращают только методы в качестве ссылочной справки говорит ясно. –