Jak mogę wydrukować pierwszy element na liście używając Scala?Wydrukuj pierwszy element na liście używając Scala
Na przykład w Pythonie mogę tylko napisać:
>>>l = [1,2,3,4]
>>>one = l[0]
>>>print one
Jak mogę to zrobić na Scala
Dzięki.
Jak mogę wydrukować pierwszy element na liście używając Scala?Wydrukuj pierwszy element na liście używając Scala
Na przykład w Pythonie mogę tylko napisać:
>>>l = [1,2,3,4]
>>>one = l[0]
>>>print one
Jak mogę to zrobić na Scala
Dzięki.
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.
}
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).
Odpowiedź można łatwo znaleźć w scaladoc for list
def head: A
Selects the first element of this list.
tak, ale jak mogę wydrukować drugi lub trzeci element w liście? –
Cóż, to było kolejne pytanie ;-) Możesz użyć metody 'apply' (jak w odpowiedzi Brano88) lub recurse na końcu listy. – Hiura
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. –