在Scala中,List实现为链接列表.它有2个部分,头部和尾部.List中的最后一个单元格包含Nil.
Scala中的Nil本身就是一个单例,并扩展了List [Nothing], 如此处所述
由于Nil是单例,它是否意味着Scala中所有List实例的end元素具有相同的对象.
事实上,结束标记始终是单个Nil,即同一个对象,最后一个元素就是前一个.
scala> val a = 1 :: 2 :: Nil
a: List[Int] = List(1, 2)
scala> a.last
res10: Int = 2
Run Code Online (Sandbox Code Playgroud)
你可能会争论这个术语,但编码员在这方面经常是实证主义者,而事实就是代码所说的.