[英]How to declare type of anonymous functions in Dart?
假設我需要一個 function 傳遞給一個方法,該方法接受一個字符串並將其轉換為雙精度:
void strToDouble(String input, Function converter) {
print('As a double, $input is ${converter(input)}`);
}
(顯然是玩具示例)
如何將converter
的類型聲明為 function 將String
變為雙倍?
要將您的converter
回調聲明為接受String
並返回double
的Function
,其類型應為: double Function(String)
。 因此,您的strToDouble
function 將是:
void strToDouble(String input, double Function(String) converter) {
...
}
你可以使用typedef
typedef double ConvertStringToDouble(String input);
void main() {
ConvertStringToDouble cs = (String input){
return double.parse(input);
};
strToDouble("29.0", cs);
}
void strToDouble(String input, ConvertStringToDouble converter) {
print("As a double, $input is ${converter(input)}");
}
這是您要調用的 function 以通過傳遞字符串和轉換器 function 將 output 作為雙倍:
dynamic dynamicConverter (String input, double Function(dynamic input) convert){
return convert.call(input);
}
您必須像下面這樣使用它:
double output = dynamicConverter("120", (input) {
return double.parse(input);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.