數(shù)組map和foreach的區(qū)別 scala中map和foreach的區(qū)別?
scala中map和foreach的區(qū)別?scala中的Set對象都有foreach和map方法。這兩個(gè)方法的共同點(diǎn)是,它們用于遍歷集合對象并為每個(gè)項(xiàng)執(zhí)行指定的方法。兩者的區(qū)別在于foreach沒有返
scala中map和foreach的區(qū)別?
scala中的Set對象都有foreach和map方法。這兩個(gè)方法的共同點(diǎn)是,它們用于遍歷集合對象并為每個(gè)項(xiàng)執(zhí)行指定的方法。兩者的區(qū)別在于foreach沒有返回值(確切地說,它返回void),map返回collection對象。查看以下代碼和運(yùn)行結(jié)果:B.getClass獲取void,而C.getClass獲取collection。查看代碼的第9-11行,foreach和map的結(jié)果是一致的。結(jié)論是foreach不能代替map,而map方法可以代替foreach。問:為什么Scala提供foreach和map?在我看來,作為一種支持函數(shù)編程范式的語言,Scala必須引入一種機(jī)制來支持?jǐn)?shù)學(xué)中的函數(shù)概念。在數(shù)學(xué)中,函數(shù)是映射的,所以scala中有映射方法也就不足為奇了。Foreach僅在不需要對集合執(zhí)行映射操作,但需要遍歷集合時(shí)使用??傊?,foreach用于遍歷一個(gè)集合,map用于將一個(gè)集合映射(轉(zhuǎn)換)到另一個(gè)集合。[Java]查看純拷貝
ES6映射用法,代碼示例:
let arr=[]{Title:“AAAA”,讀數(shù):100, 熱:真的},
{標(biāo)題:“bbbb”讀數(shù):50, 熱:假},
{標(biāo)題:“ccc”讀數(shù):100, 熱:真的}
]讓newArr=布置圖((item,index,arr)=>{
讓json={}
json.t=`---${項(xiàng)目名稱}----------`
json.r=項(xiàng)。讀取200
json.hot文件= 項(xiàng)目.熱==true&[return JSON
}]控制臺.log(newarr)]//map對于數(shù)據(jù)交互非常有用,“mapping”]//一般情況下,需要配合return返回一個(gè)新數(shù)組
//如果沒有return,則等價(jià)于foreach
//通常只使用map,必須有返回值