scala中的集合物件都有foreach和map兩個方法。兩個方法的共同點在於:都是用於遍歷集合物件,並對每一項執行指定的方法。而兩者的差異在於:foreach無返回值(準確說返回void),map返回集合物件。見如下**及執行結果:b.getclass 得到的是void, 而c.getclass得到的是colletion 。再看**的第9-11行,foreach和map的執行結果一致。結論就是:foreach 無法代替map. 而map方法卻可以代替foreach。
問題:為什麼scala提供foreach和map兩個方法呢?本人看法是scala做為一種支援函式式程式設計正規化的語言,必然要引入一種機制以支援數學中函式概念,而在數學中函式就是對映,所以scala中有map方法一點都不奇怪。而foreach只是用在不需要對集合執行對映操作,但需要遍歷集合時才用到。總而言之,foreach用於遍歷集合,而map用於對映**換)集合到另乙個集合。
1 object arraytest extends執行結果:2 var increase=(x:int)=>x+1
3 val somenumbers = list ( -11, -10, - 5, 0, 5, 10)
4 var b =somenumbers.foreach(increase)
5println(b.getclass)
6 var c =somenumbers.map(increase)
7println(c.getclass)
89 c.foreach((x:int)=>print(x+" "))
10println()
11 c.map((x:int)=>print(x+" "))
1213 }
scala中map和foreach的區別
scala中的集合物件都有foreach和map兩個方法。兩個方法的共同點在於 都是用於遍歷集合物件,並對每一項執行指定的方法。而兩者的差異在於 foreach無返回值 準確說返回void map返回集合物件。見如下 及執行結果 b.getclass 得到的是void,而c.getclass得到的是...
Scala 中的foreach和map方法比較
scala中的集合物件都有foreach和map兩個方法。兩個方法的共同點在於 都是用於遍歷集合物件,並對每一項執行指定的方法。而兩者的差異在於 foreach無返回值 準確說返回void map返回集合物件。見如下 及執行結果 b.getclass 得到的是void,而c.getclass得到的是...
C 中for和foreach迴圈的效能
大家先來看看如下三個迴圈 int foo new int 100 1,foreach int i in foo console.writeline i.tostring 複製 2,for int index 0 index console.writeline foo index tostring 複...