2013-09-21 34 views

Trả lời

9

Như Hiura nói, hoặc như thế này:

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

Về cơ bản, mã python của bạn là tương đương với: (. Chạy trong thông dịch 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 là tài liệu về Danh sách Scala của.


Câu hỏi được đặt ra là «làm cách nào để hiển thị từng phần tử?».

Đây là một thực hiện đệ quy sử dụng mô hình phù hợp:

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 

Như David Weber chỉ ra trong các ý kiến, nếu bạn không thể sử dụng một thuật toán đệ quy đến thăm các yếu tố của danh sách của bạn thì bạn nên xem xét sử dụng thùng chứa khác, vì truy cập phần tử thứ i của một số List lấy O (N).

+0

vâng nhưng làm thế nào tôi có thể in Yếu tố thứ hai hoặc thứ ba trong danh sách? –

+0

Vâng, đó là một câu hỏi khác ;-) Bạn có thể sử dụng phương thức 'apply' (như trong câu trả lời của Brano88), hoặc recurse trên đuôi của danh sách. – Hiura

+3

Nếu bạn có thể duyệt qua danh sách từ đầu đến đuôi, hãy lấy đi. Nếu không, bạn đang sử dụng cấu trúc dữ liệu sai khi áp dụng là O (N) cho danh sách. Sử dụng Vector hoặc Array để thay thế. –

2

trả lời có thể dễ dàng được tìm thấy trong scaladoc for list

def head: A 
Selects the first element of this list. 
Các vấn đề liên quan