gpt4 book ai didi

scala - 为什么使用 cons 运算符构建的列表末尾需要 Nil

转载 作者:行者123 更新时间:2023-12-02 19:54:58 24 4
gpt4 key购买 nike

我现在正在学习 Scala(Scala 编程,第二版,Odersky)。

当使用 cons 运算符构建列表时,我们必须编写:

val l = 1 :: 2 :: 3 :: 4 :: Nil

为什么最后需要 Nil?为什么编译器不能理解 4 是最后一个元素,所以就这样写:

val l = 1 :: 2 :: 3 :: 4

最佳答案

::的签名大致为:

case class ::[E](hd: E, tl: List[E]) extends List[E]

// which generates this automatically:

object :: {
def apply[E](hd: E, tl: List[E]): ::[E]
}

Nil的签名大致为:

object Nil extends List[Nothing]

如您所见,:: 采用一个元素和一个列表。 4 不是列表,而 Nil 是列表。

关于scala - 为什么使用 cons 运算符构建的列表末尾需要 Nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22881671/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com