以此为后续this SO questionTuple2的概念性目的是什么?
我是新来的斯卡拉和99 problems工作。给出的解决方案是P9:
object P09 {
def pack[A](ls: List[A]): List[List[A]] = {
if (ls.isEmpty) List(List())
else {
val (packed, next) = ls span { _ == ls.head }
if (next == Nil) List(packed)
else packed :: pack(next)
}
}
}
的span function在这里做所有的工作。正如你从API文档中看到的那样(这是链接)span返回一个Tuple2(实际上文档说它会返回一对 - 但这已被弃用或Tuple2弃用)。我试图弄清楚为什么你不能像列表清单或其他类似的东西那样得到某种东西,并且偶然发现了上面的SO链接。据我所知,Tuple2的原因与增加性能有关,因为不必处理Java对像Integer这样的对象进行“装箱/拆箱”等操作。我的问题是
1)是一个准确的声明?
2)是否还有其他原因让类似span的东西返回Tuple2?
thx!
w00t!这有助于很多 - 吨/年! – 2015-02-24 20:13:31
每个值的已知尺寸和已知类型。 – cchantep 2015-02-24 22:11:11