2013-09-21 6 views

Odpowiedz

9

Jak powiedział Hiura lub tak:

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. 
} 
9

Zasadniczo kod python jest równoznaczne z: (. Run w tłumacza scala)

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 jest dokumentacja o listy Scala.


Zostało zadane jako dodatkowe pytanie "Jak wyświetlić każdy element?".

Oto rekurencyjna realizacja za pomocą dopasowywania wzoru:

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 

Jak David Weber zauważył w komentarzach, jeśli nie można użyć algorytmu rekurencyjnego odwiedzić elementy swojej listy za to należy rozważyć zastosowanie innego pojemnika, ponieważ dostęp do i-tego elementu z List zajmuje O (N).

+0

tak, ale jak mogę wydrukować drugi lub trzeci element w liście? –

+0

Cóż, to było kolejne pytanie ;-) Możesz użyć metody 'apply' (jak w odpowiedzi Brano88) lub recurse na końcu listy. – Hiura

+3

Jeśli możesz przemieścić listę od głowy do ogona, a następnie odejść. Jeśli nie, to używasz niewłaściwej struktury danych, ponieważ dla list stosuje się O (N). Zamiast tego należy użyć Vector lub Array. –

2

Odpowiedź można łatwo znaleźć w scaladoc for list

def head: A 
Selects the first element of this list.