scala.collection.immutable.MapLike.mapValues是否违反了scala.collection.immutable.Map的约定?

scala.collection.immutable.MapLike.mapValues是否违反了scala.collection.immutable.Map的约定?,scala,Scala,我编写了一个代码,将值从scala.collection.immutable.Map转换为另一个值。我以为它会创建一个新映射,因为返回类型是scala.collection.immutable.map,但实际上它每次都会从原始映射返回一个视图和转换值。从理论上看,转换函数可能会为同一个键返回不同的值。因此,最好将返回的结果复制到新的映射中,而不是每次都转换它 我说得对吗?嗯,这是时间与记忆的对比。创建一个新地图可能更好,创建一个视图可能更好。我认为这不会破坏任何契约。Map中的mapValues

我编写了一个代码,将值从
scala.collection.immutable.Map
转换为另一个值。我以为它会创建一个新映射,因为返回类型是scala.collection.immutable.map,但实际上它每次都会从原始映射返回一个视图和转换值。从理论上看,转换函数可能会为同一个键返回不同的值。因此,最好将返回的结果复制到新的映射中,而不是每次都转换它


我说得对吗?

嗯,这是时间与记忆的对比。创建一个新地图可能更好,创建一个视图可能更好。我认为这不会破坏任何契约。
Map
中的
mapValues
的定义继承自
MapLike
,并且生成的映射会显式地包装原始映射,而不复制任何元素。此外,从理论角度来看,在不可变集合中使用副作用函数会导致不可预测的效果