2013-09-21 23 views
5

Scalaを使用してリストの最初の要素を印刷するにはどうすればよいですか? Pythonで例えばScalaを使用してリストの最初の要素を印刷

私は書くことができます:

>>>l = [1,2,3,4] 
>>>one = l[0] 
>>>print one 

私は

スカラ座に感謝することをどのように行うことができます。

答えて

9

Hiuraは言った、またはこれ好きなように:

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

基本的には、あなたのPythonコードは同等である:(。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はScalaの一覧についてのドキュメントです。


「私はどのように各要素を表示するのですか?」という副題として質問されました。ここで

は、パターンマッチングを使用して再帰的な実装です:

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 

デイヴィッド・ウェーバーはコメントで指摘したように、あなたのリストの要素を訪問する再帰アルゴリズムを使用することができない場合は、あなたがするので、別の容器を使用することを検討すべきですListのi番目の要素へのアクセスにはO(N)が必要です。

+0

で見つけることができますが、どのように私は、リスト内の第二または第三の要素を印刷することができますか? –

+0

これは別の質問です;-) 'apply'メソッド(Brano88の答えのように)を使うことも、リストの末尾に再帰させることもできます。 – Hiura

+3

リストを頭から尾までトラバースすることができれば、離れて再帰します。そうでない場合は、間違ったデータ構造を使用しています。これは、リストではO(N)です。代わりにVectorまたはArrayを使用してください。 –

2

回答は簡単そうscaladoc for list

def head: A 
Selects the first element of this list. 
関連する問題