正在学习Scala, 在编译下面的文件时,出错了。搞得我不知道如何修改,哪位可以帮忙? 先谢谢了!
文件名字为 Many.scala
sealed trait Many[+A]
case object Empty extends Many[Nothing]
case class Cons[+A](head: A, tail: Many[A]) extends Many[A]
object Many {
def apply[A](as: A*): List[A] =
if (as.isEmpty) Empty
else Cons(as.head, apply(as.tail: _*))
}
object MyApp extends App {
println("start to work...")
}
编译时,遇到如下错误
/home/hyan/tmp/scala/Many.scala:9: error: type mismatch;
found : Empty.type
required: List[A]
if (as.isEmpty) Empty
^
/home/hyan/tmp/scala/Many.scala:10: error: type mismatch;
found : List[A]
required: Many[?]
else Cons(as.head, apply(as.tail: _*))
^
two errors found
Many对象apply方法的返回类型不对,你试下下面代码