如何使用Scala打印列表中的第一個元素?使用Scala打印列表中的第一個元素
例如在Python我可以只寫:
>>>l = [1,2,3,4]
>>>one = l[0]
>>>print one
我如何能做到在斯卡拉
感謝。
如何使用Scala打印列表中的第一個元素?使用Scala打印列表中的第一個元素
例如在Python我可以只寫:
>>>l = [1,2,3,4]
>>>one = l[0]
>>>print one
我如何能做到在斯卡拉
感謝。
正如Hiura說,還是這樣的:
object ListDemo extends App {
val lst = List(1, 2, 3)
println(lst(0)) // Prints specific value. In this case 1.
// Number at 0 position.
println(lst(1)) // Prints 2.
println(lst(2)) // Prints 3.
}
基本上,你的Python代碼等同的:(在斯卡拉解釋器中運行)
scala> val l = 1 :: 2 :: 3 :: 4 :: Nil
l: List[Int] = List(1, 2, 3, 4)
scala> val one = l.head
one: Int = 1
scala> println(one)
1
Here是關於Scala的列表的文檔。
它被要求作爲附屬問題「我如何顯示每個元素?」。
這裏是一個遞歸實現使用模式匹配:
scala> def recPrint(xs: List[Int]) {
| xs match {
| case Nil => // nothing else to do
| case head :: tail =>
| println(head)
| recPrint(tail)
| }}
recPrint: (xs: List[Int])Unit
scala> recPrint(l)
1
2
3
4
正如大衛·韋伯在評論中指出的,如果你不能使用遞歸算法來訪問你的列表中的元素,那麼你應該考慮使用其他的容器,因爲訪問List
的第i個元素需要O(N)。
答案可以很容易地在scaladoc for list
def head: A
Selects the first element of this list.
耶找到,但我怎麼能在列表打印第二個或第三個元素? –
那麼,那是另一個問題;-) 你可以使用'apply'方法(比如在Brano88的答案中),或者在列表的尾部遞歸。 – Hiura
如果您可以從頭到尾遍歷列表,然後遞歸。如果沒有,則使用錯誤的數據結構,因爲適用於O(N)的列表。改用Vector或Array。 –