2013-09-21 11 views

Antwort

9

Wie gesagt Hiura, oder wie folgt aus:

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

Grundsätzlich Ihr Python-Code entspricht aus: (. Run in der scala-Interpreter)

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 ist die Dokumentation über Scala Liste.


Es wurde als eine Hilfsfrage gefragt «Wie zeige ich jedes Element an?».

Hier ist eine rekursive Implementierung unter Verwendung von Musterabgleich:

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 

Als David Weber in den Kommentaren darauf hingewiesen, wenn Sie nicht einen rekursiven Algorithmus verwenden können die Liste der Elemente, dann sollten Sie einen anderen Container betrachten besuchen verwenden, weil Zugriff auf das i-te Element eines List dauert O (N).

+0

aber wie kann ich drucken zweites oder drittes Element in der Liste zu finden sind? –

+0

Nun, das war eine andere Frage ;-) Sie können entweder die 'apply'-Methode verwenden (wie in Brano88s Antwort), oder am Ende der Liste rekursiv arbeiten. – Hiura

+3

Wenn Sie die Liste von Kopf bis Fuß durchqueren können, dann fahren Sie fort. Wenn nicht, verwenden Sie die falsche Datenstruktur, da für Listen O (N) gilt. Verwenden Sie stattdessen Vector oder Array. –

2

Antwort leicht ja in scaladoc for list

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