2013-09-21 6 views

risposta

9

Come detto Hiura, o come questo:

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

In sostanza, il codice Python è equivalente di: (. Eseguire nell'interprete 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 è la documentazione su List di Scala.


È stato chiesto come domanda sussidiaria «come visualizzare ciascun elemento?».

Ecco un pattern matching ricorsiva implementazione utilizzando:

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 

Come David Weber ha sottolineato nei commenti, se non è possibile utilizzare un algoritmo ricorsivo per visitare gli elementi del tuo elenco, allora si dovrebbe considerare l'utilizzo di un altro contenitore, perché l'accesso all'elemento i-esimo di un List richiede O (N).

+0

sì, ma come posso stampare secondo o il terzo elemento della lista? –

+0

Bene, questa era un'altra domanda ;-) Puoi usare il metodo 'apply' (come nella risposta di Brano88), o recurse sulla coda della lista. – Hiura

+3

Se è possibile attraversare la lista dalla testa alla coda, quindi recurse away. In caso contrario, si sta utilizzando la struttura di dati errata in quanto applicabile è O (N) per gli elenchi. Usa invece Vector o Array. –

2

risposta può facilmente essere trovato in scaladoc for list

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