我正在嘗試遞回這樣的串列(有效):
def sumList(lst: List[Int]): Int = lst match {
case Nil => 0
case n :: rest => n sumList(rest)
}
但是,我不明白為什么基本情況是Nil,而不是List(Nil)。
(我在一些Nil代表空串列的答案中看到了,但是:
scala> List(Nil) == Nil
val res0: Boolean = false
)
uj5u.com熱心網友回復:
Nil不代表缺失值或null,它是代表空串列的值。可以等價表示List()。List(Nil)是一個包含空串列的串列。
uj5u.com熱心網友回復:
val x = List()
val y = Nil
println(x == y) //true
在某些情況下,您必須在撰寫 Nil 時撰寫型別(例如,Nil: List[Int])。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/450227.html
標籤:斯卡拉
