我正在撰寫一個測驗實用程式函式,并希望傳遞一個類成員名稱并獲取其值。我可以Symbol為此使用s 嗎?我的測驗代碼看起來像這樣
class Foo {
String a = 'A';
String b = 'B';
static void output(Symbol symbol) {
debugPrint("The value is '$symbol'");
}
}
Foo.output(#a);
我試圖得到一個結果,The value is 'A'但我得到了The value is 'Symbol("a")'?
uj5u.com熱心網友回復:
通過 name獲取某物的值,其中 name 是一個value,在運行時,這就是反射。您需dart:mirrors要這樣做,這在大多數平臺上都不可用。
更好的是,根本不要這樣做。Dart 具有一流的函式,因此您可以傳入一個訪問變數的函式:
class Foo {
String a = 'A';
String b = 'B';
static void output(String read(Foo value)) {
debugPrint("The value is '${read(this)}'");
}
}
void main() {
var foo = Foo();
foo.output((f) => f.a);
foo.output((f) => f.b);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/340052.html
