我不喜歡使用索引數組沒有理由,除了我認爲它看起來很醜。有沒有一個乾淨的方式來與一個匿名函數?是否有可能不使用任何外部變量呢?在Dart的收集/列表中獲得數字總和的最簡潔方法是什麼?
10
A
回答
11
飛鏢iterables現在有一個減少函數(https://code.google.com/p/dart/issues/detail?id=1649),所以你可以在沒有定義你自己的摺疊功能的情況下做一個簡潔的總結:
var sum = [1, 2, 3].reduce((a, b) => a + b);
4
沒有一個乾淨的方式使用核心庫,因爲他們現在要做的,但如果你滾你自己foldLeft再有就是
main() {
var sum = foldLeft([1,2,3], 0, (val, entry) => val + entry);
print(sum);
}
Dynamic foldLeft(Collection collection, Dynamic val, func) {
collection.forEach((entry) => val = func(val, entry));
return val;
}
我跟鏢隊有關添加foldLft到核心集合,我希望它很快就會到來。
4
我仍然認爲明顯的方法是更清潔,更容易理解這個特定的問題。
num sum = 0;
[1, 2, 3].forEach((num e){sum += e;});
print(sum);
或
num sum = 0;
for (num e in [1,2,3]) {
sum += e;
}
3
int sum = [1, 2, 3].fold(0, (previous, current) => previous + current);
或較短的變量名,使其佔用的空間更小:
int sum = [1, 2, 3].fold(0, (p, c) => p + c);
相關問題
- 1. 在Python列表上進行sort和uniq的最簡潔的方法是什麼?
- 2. 從MutationRecord獲取nextElementSibling(previousElementSibling)的最簡潔方法是什麼?
- 3. 獲得numpy數組的換行分隔字符串表示的最簡潔方法是什麼?
- 4. 獲取多維數組校驗和的最簡潔方法是什麼?
- 5. 實現動態HTML表單的最簡潔方法是什麼?
- 6. 獲得前x個字符的最簡單方法是什麼?
- 7. 使用sqlite3在Python中獲取blob的最簡潔的方法是什麼?
- 8. 從地圖中獲得最高n個數字的最簡潔方法?
- 9. 什麼是最簡潔的方式將字符串列更改爲整數列
- 10. 獲取字符串中關鍵字列表的最簡單方法是什麼?
- 11. 在SQL Server 2005中總是舍入數字的最簡單方法是什麼?
- 12. 在Ruby中鏈接流函數的最簡潔的方法是什麼?
- 13. 在Scala中總結兩個列表的最簡單方法是什麼?
- 14. 什麼是使用AJAX修改DOM的最簡潔的方法
- 15. TSQL按帳戶總結,處理此問題的最簡潔方法是什麼?
- 16. 在數據庫中存儲差異的最簡潔方法是什麼?
- 17. 使Linq對象變得「髒」的最簡潔的方法是什麼?
- 18. 在Ruby中設置全名的最簡潔方式是什麼?
- 19. 在ng-grid中做列總數的最佳方法是什麼?
- 20. 確定字符串是否有值的最簡潔的方法是什麼?
- 21. 使用ServiceStack中的表單身份驗證的最簡潔方法是什麼?
- 22. 數據綁定時呈現方法結果的最簡潔方法是什麼?
- 23. 綁定枚舉屬性的最簡潔方法是什麼?
- 24. 填補數字列表中的空白最簡單的方法是什麼?
- 25. 什麼是一個簡單的簡潔的方式來獲得列表尾如果它存在?
- 26. 從Windows系統中刪除Homestead和Vagrant的最簡潔方法是什麼?
- 27. 在Ruby中,獲取數組中最大值索引的最簡潔方法是什麼?
- 28. 什麼是在JavaScript中獲得隨機數的最佳方法
- 29. 在DesignMode中編輯集合的最簡單方法是什麼?
- 30. 在wxWidgets中通知GUI更新的最簡潔的方法是什麼?
這可以通過向Ruby中的集合接口添加註入函數來解決。 –
這是一些非常漂亮的代碼,拉爾斯。不僅是我在尋找的東西,現在我明白了摺疊。 –
只要在上面的foldLeft中內聯代碼,您當然可以使用匿名函數來執行此操作,無論是否使用任何庫代碼都可以。你幾乎總是需要一個變量,除非你對遞歸太過聰明。或者,你也可以使用for(var in in)而不是forEach來實現,並將函數應用於for循環體。要麼工作。 –