使用listTimes方法時無法運行
void?main()?{ ??//?方法賦值給變量 ??var?fun?=?printHello; ??fun(); ??//?方法作為參數傳遞 ??List?list?=?[1,?2,?3,?4]; ??list.forEach(print); ??List?names?=?["哈",?"王",?"神"]; ??print(listTimes(names,?times)); } ///?方法 void?printHello()?{ ??print("Hello"); } ///?創建了一個傳入函數的方法 List?listTimes(List?list,?String?times(msg))?{ ??for?(int?i?=?0;?i?<?list.length;?i++)?{ ????list[i]?=?times(list[i]); ??} ??return?list; } String?times(String?msg)?{ ??return?msg?*?3; }
在調用
?print(listTimes(names,?times));
時軟件報錯,提示:
Error: The top level function has type 'String Function(String)' that isn't of expected type 'String Function(dynamic)'.
Change the type of the function or the context in which it is used.
? print(listTimes(names, times));
2020-05-17
times方法在聲明的時候指定參數msg的類型為String,但是在listTimes接收參數聲明的時候定義的是dynamic類型的msg,可以將List listTimes(List list, String times(msg))修改為List listTimes(List list, String times(String msg))
2019-08-30
第一種解決方式 : times方法中入參類型String刪掉;? ?
第二種解決方式 : listTimes方法種函數入參 msg加入String