[英]How to pass a Type parameter to a function in Dart?
我想將類型參數傳遞給我的 function。 那可能嗎?
例如:
List getSomething(Type typeToReturn) {
return List<dynamic, typeToReturn>();
}
我的代碼:
List<charts.Series> getSeriesData(Type typeToReturn) {
List<DateTime> dates = getDaysInBetween(startTime, DateTime.now());
List<Map> data = [];
dates.forEach((DateTime date) => data.add({
'date': '${date.day.toString()}.${date.month.toString()}',
'score': _getTotalScoreInSpecificDate(date)
}));
return [
new charts.Series<dynamic, typeToReturn>(
id: 'Score',
colorFn: (_, __) => charts.MaterialPalette.blue.shadeDefault,
domainFn: (data, _) => data['date'],
measureFn: (data, _) => data['score'],
data: data,
)
];
}
是的,您可以使用Generics ,因此 function 將是這樣的:
List<dynamic, T> getSomething<T>(T typeToReturn) {
return List<dynamic, T>();
}
你想用 generics 做這樣的事情,完全放棄你的typeToReturn
參數:
List<charts.Series> getSeriesData<T>() {
// ...
return [
new charts.Series<dynamic, T>(
// ...
)
];
}
另外,我不相信您可以動態使用Type
object 作為類型參數。 我認為您可以使用dart:mirrors
,但是該庫與 Flutter 不兼容,並且不再真正維護。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.