o*****l 发帖数: 539 | 1 scala> val a= (List(10, 20), List(3, 4, 5)).zipped
a: scala.runtime.Tuple2Zipped[Int,List[Int],Int,List[Int]] = scala.runtime.
Tuple2Zipped@ab06043
拿位大侠能帮忙解释以下scala.runtime.Tuple2Zipped?
[Int,List[Int],Int,List[Int]] 到底是什么东东?
谢谢! | l**********n 发帖数: 8443 | | d******e 发帖数: 2265 | 3 tuple of 2 element zipped.
特定数据结构提高效率的。
【在 o*****l 的大作中提到】 : scala> val a= (List(10, 20), List(3, 4, 5)).zipped : a: scala.runtime.Tuple2Zipped[Int,List[Int],Int,List[Int]] = scala.runtime. : Tuple2Zipped@ab06043 : 拿位大侠能帮忙解释以下scala.runtime.Tuple2Zipped? : [Int,List[Int],Int,List[Int]] 到底是什么东东? : 谢谢!
| o*****l 发帖数: 539 | 4 那个是 type parameter为什么是 [Int,List[Int],Int,List[Int]]?
从后面那个map涵数来看, type parameter 似乎是[List(int, int)]?
scala> val a= (List(10, 20), List(3, 4, 5)).zipped
a: scala.runtime.Tuple2Zipped[Int,List[Int],Int,List[Int]] = scala.runtime.
Tuple2Zipped@ab06043
scala> a.map({case (a,b) => println(a*b)})
30
80
res0: List[Unit] = List((), ())
【在 d******e 的大作中提到】 : tuple of 2 element zipped. : 特定数据结构提高效率的。
| d******e 发帖数: 2265 | 5 http://www.scala-lang.org/api/2.11.x/index.html#scala.runtime.T
你可以看到它是一个ZippedTraversable2[El1, El2]
所以你map的时候另外2个就没有用到啦。
scala的list不是linked list,而去它很可能就存了两个cursors + 到原来list的指针。
你zip的时候它可能就是不断的
tail, head,
tail, head
【在 o*****l 的大作中提到】 : 那个是 type parameter为什么是 [Int,List[Int],Int,List[Int]]? : 从后面那个map涵数来看, type parameter 似乎是[List(int, int)]? : scala> val a= (List(10, 20), List(3, 4, 5)).zipped : a: scala.runtime.Tuple2Zipped[Int,List[Int],Int,List[Int]] = scala.runtime. : Tuple2Zipped@ab06043 : scala> a.map({case (a,b) => println(a*b)}) : 30 : 80 : res0: List[Unit] = List((), ())
|
|