我有下面的代码行,它在 Scala 中构造了一个列表。
val oneTwoThree = 1 :: 2 :: 3 :: Nil
解释说“最后需要
Nil
的原因是 ::
定义在类 List
上。如果你试着只说 1 :: 2 :: 3
,它不会编译,因为 3 是一个 Int
,它没有 ::
方法。”但是在这行代码中,无处是
List
类提到。有人可以帮我了解如何Nil
List
中的方法然后正确调用类?
最佳答案
Nil
(参见 here )是一个 Scala 对象(单例实例),它有一个 ::
返回 List
的方法.
由于以冒号结尾的方法名称规则,3 :: Nil
翻译成Nil.::(3)
然后返回 List(3)
. List
类(class)也有::
方法如此 2 :: List(3)
翻译成List(3).::(2)
返回 List(2,3)
.等等。
关于scala - 如何在 Scala 中将 Nil 识别为 List 类中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55154760/