作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 his course on Coursera ,Martin Odesky教授在关于多态和参数化类的讲座中以链表为例:
package week4
trait List[T] {
def isEmpty: Boolean
def head: T
def tail: List[T]
}
class Cons[T](val head: T, val tail: List[T]) extends List[T] {
def isEmpty = false
}
class Nil[T] extends List[T] {
def isEmpty = true
def head = throw new NoSuchElementException("Nil.head")
def tail = throw new NoSuchElementException("Nil.tail")
}
object Main extends App {
def main(args: Array[String]) {
val lst = new Cons("A", new Cons("B", new Cons("C", new Nil())))
}
}
new Nil()
.
object
而不是作为 Scala 类,并使其符合参数化类型 List[T] ?
new Cons("A", new Cons("B", new Cons("C", Nil)))
最佳答案
在实际的 Scala 库 ( List.scala ) 中,这是如何完成的,
case object Nil extends List[Nothing] { ...
Nothing
,这是
type at the bottom of Scala's type lattice .
关于scala - 单例对象的类参数(泛型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16001274/
我是一名优秀的程序员,十分优秀!