Red de conocimiento informático - Problemas con los teléfonos móviles - La diferencia entre map y foreach en Scala

La diferencia entre map y foreach en Scala

Los objetos de colección en Scala tienen dos métodos: foreach y map. La mayor similitud entre los dos métodos es que ambos se utilizan para atravesar el objeto de la colección y ejecutar el método especificado en cada elemento. La diferencia entre los dos es que foreach no tiene valor de retorno (para ser precisos, devuelve vacío) y map devuelve un objeto de colección. Vea el siguiente código y los resultados de ejecución: b.getClass se anula, mientras que c.getClass se recopila. Al observar las líneas 9 a 11 del código, los resultados de foreach y map son consistentes. La conclusión es: foreach no puede reemplazar el mapa, pero el método del mapa puede reemplazar a foreach.

Pregunta: ¿Por qué Scala proporciona dos métodos, foreach y map? Mi opinión es que Scala, como lenguaje que admite el paradigma de programación funcional, debe introducir un mecanismo para respaldar el concepto de funciones en matemáticas. En matemáticas, las funciones son asignaciones, por lo que no es sorprendente que exista un método de mapa en Scala. Y foreach solo se usa cuando no necesita realizar operaciones de mapeo en la colección, pero necesita atravesar la colección. En resumen, foreach se usa para iterar sobre una colección, mientras que map se usa para mapear (transformar) una colección en otra colección.

[java]?vista simple?copia

objeto?arrayTest?extends?App{?

var?increase=(x:Int)=>x +1?

val?algunosNúmeros?=?Lista?(?-11,?-10,?-?5,?0,?5,?10)?

var ?b?=?someNumbers.foreach(aumento)?

println(b.getClass)?

var?c?=?someNumbers.map(aumento)?

println(c.getClass)?

c.foreach((x:Int)=>print(x+"?"))?

println()?

c.map((x:Int)=>print(x+"?"))?

}?