我正在學習 Dart,并且正在關注有關可迭代集合的Codelabs 教程。
我剛剛閱讀了firstWhere用于查找滿足某個標準的第一個元素的迭代方法。
教程給出了一個類似下面的例子:
bool predicate(String item, {int minLength = 6}) => item.length > minLength;
void main() {
const items = ['Salad', 'Popcorn', 'Toast', 'Lasagne'];
var foundItem = items.firstWhere(predicate);
print(foundItem);
}
哪個會列印,Popcorn因為它是第一個包含 6 個或更多字符的字串。
我想知道是否可以在呼叫時將minLength引數傳遞predicate給items.firstWhere(predicate).
uj5u.com熱心網友回復:
當然,但像這樣:
final minLength = 6;
final foundItem = items.firstWhere((String item) => item.length > minLength));
您的示例所做的只是將方法提取(String item) => item.length > minLength;到單獨的全域變數中。這是沒有必要的,我不會推薦。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/400070.html
上一篇:如何創建小部件參考的映射?
