Dynamic class method invocation in PHP의 질문과 마찬가지로 나는 이것을 다트에서하고 싶습니다.다트의 동적 클래스 메소드 호출
var = "name";
page.${var} = value;
page.save();
그럴 수 있습니까?
Dynamic class method invocation in PHP의 질문과 마찬가지로 나는 이것을 다트에서하고 싶습니다.다트의 동적 클래스 메소드 호출
var = "name";
page.${var} = value;
page.save();
그럴 수 있습니까?
당신이 Mirrors으로 달성 할 수있는 몇 가지가 있습니다. 당신이 궁금해
import 'dart:mirrors';
class Page {
var name;
method() {
print('called!');
}
}
void main() {
var page = new Page();
var im = reflect(page);
// Set values.
im.setField("name", "some value").then((temp) => print(page.name));
// Call methods.
im.invoke("method", []);
}
경우, im
은 기본적으로 page
인스턴스를 반영하는 InstanceMirror
입니다 :
여기에 클래스의 값을 설정하는 방법과 동적 방법을 호출하는 방법을 예입니다. Is there a way to dynamically call a method or set an instance variable in a class in Dart?
Dart Mirror API을 사용하면 이러한 일을 할 수 있습니다. 미러 API는 완전히 지금 구현하지만 여기가 일할 수있는 방법은되지 않습니다
import 'dart:mirrors';
class Page {
String name;
}
main() {
final page = new Page();
var value = "value";
InstanceMirror im = reflect(page);
im.setField("name", value).then((_){
print(page.name); // display "value"
});
}
'Futures.wait()'에 대한 호출은 거의 의미가 없습니다. 이를 생략 할 수 있으며 결과는 동일합니다. 'Futures.wait()'는 주어진 액션이 완료 될 때 완료되는'Future'를 리턴하므로 제대로 작동하게하려면'.then()'을 써야합니다. 물론 작업이 비동기이기 때문에 운에 따라 작동합니다. –
의견을 보내 주셔서 감사합니다. 나는 미래의 사용법에 익숙하지 않고 나는'await' 제안과 혼동한다. www.dartbug.com/104 –
당신은 예를 들어 Serializable
사용할 수 있습니다 :
import 'package:serializable/serializable.dart';
@serializable
class Page extends _$PageSerializable {
String name;
}
main() {
final page = new Page();
var attribute = "name";
var value = "value";
page["name"] = value;
page[attribute] = value;
print("page.name: ${page['name']}");
}
것은 반드시 녹색 체크 표시가 그 해답 중 하나에
또 다른 질문이 있습니다! 둘 다 정확합니다. –