foreach循環(huán)遍歷list scala中map和foreach的區(qū)別?
scala中map和foreach的區(qū)別?scala中的Set對(duì)象都有foreach和map方法。這兩個(gè)方法的共同點(diǎn)是,它們用于遍歷集合對(duì)象并為每個(gè)項(xiàng)執(zhí)行指定的方法。兩者的區(qū)別在于foreach沒(méi)有返
scala中map和foreach的區(qū)別?
scala中的Set對(duì)象都有foreach和map方法。這兩個(gè)方法的共同點(diǎn)是,它們用于遍歷集合對(duì)象并為每個(gè)項(xiàng)執(zhí)行指定的方法。兩者的區(qū)別在于foreach沒(méi)有返回值(確切地說(shuō),它返回void),map返回collection對(duì)象。查看以下代碼和運(yùn)行結(jié)果:B.getClass獲取void,而C.getClass獲取collection。查看代碼的第9-11行,foreach和map的結(jié)果是一致的。結(jié)論是foreach不能代替map,而map方法可以代替foreach。問(wèn):為什么Scala提供foreach和map?在我看來(lái),作為一種支持函數(shù)編程范式的語(yǔ)言,Scala必須引入一種機(jī)制來(lái)支持?jǐn)?shù)學(xué)中的函數(shù)概念。在數(shù)學(xué)中,函數(shù)是映射的,所以scala中有映射方法也就不足為奇了。Foreach僅在不需要對(duì)集合執(zhí)行映射操作,但需要遍歷集合時(shí)使用??傊琭oreach用于遍歷一個(gè)集合,map用于將一個(gè)集合映射(轉(zhuǎn)換)到另一個(gè)集合。[java]查看純拷貝