【发布时间】:2014-12-27 13:46:23
【问题描述】:
在下面的应用方法中,什么是“as: A*”?
List(1, 2, 3) 构造一个类型列表:Cons(1,Cons(2,Cons(3,Nil)))
通过阅读方法代码,它似乎是一种语法糖 多个相同类型的类型参数?
sealed trait List[+A]
case object Nil extends List[Nothing]
case class Cons[+A](head: A, tail: List[A]) extends List[A]
object List {
def apply[A](as: A*): List[A] =
if (as.isEmpty) Nil
else {
Cons(as.head, apply(as.tail: _*))
}
}
如果这是真的,这不应该也是有效的:
object List {
def apply[A](asHead: A , asTail : A): List[A] =
if (asHead.isEmpty) Nil
else {
Cons(asHead.head, apply(asTail.tail: _*))
}
【问题讨论】:
-
提示:Google 搜索“scala 中的明星”。
标签: scala