Scala 有一种使用map
construct将集合转换为另一个集合的惊人方法。
val l = List(1, 2, 3, 4)
l.map(_*_)
Run Code Online (Sandbox Code Playgroud)
将返回列表中元素的平方 l
我遇到了多个地图链接在一起的各种情况,比如,
val l = List(1, 2, 3, 4)
val res = l.map(_ * _).map(_ + 1).filter(_ < 3)
Run Code Online (Sandbox Code Playgroud)
我相信下面发生的事情等同于下面的事情。
val l = List(1, 2, 3, 4)
val l1 = l.map(_*_)
val l2 = l1.map(_ + 1)
val res = l2.filter(_ < 3)
Run Code Online (Sandbox Code Playgroud)
创建l1
和l2
如果集合过大可能会导致内存问题。为了解决这个问题,Scala 编译器有什么优化吗?
val l = List(1, 2, 3, 4)
val res = l1.map( _*_ + 1).filter(_ < 3)
Run Code Online (Sandbox Code Playgroud)
一般来说,如果f …