scalaプログラミング第17章学習ノート(4)——メタグループ
1961 ワード
メタグループは、固定数のエントリを組み合わせて、全体として転送することができる.配列やリストとは異なり、メタグループは異なるタイプのオブジェクトを保存できます.
メタグループは、メソッドの複数の値を返すためによく使用されます.たとえば、次の方法では、コレクション内の最も長い単語を見つけてインデックスを返します.
次に、メソッドの例を示します.
メタグループの要素にアクセスするには、メソッドを使用します.1最初の要素にアクセス、2.2番目にアクセスします.
また、メタグループの各要素を独自の変数に割り当てることもできます.次のようにします.
また、カッコを外すと、次のような結果が得られます.
メタグループは、メソッドの複数の値を返すためによく使用されます.たとえば、次の方法では、コレクション内の最も長い単語を見つけてインデックスを返します.
scala> def longestWord(words: Array[String]) = {
| var word = words(0)
| var idx = 0
| for (i <- 1 until words.length)
| if (words(i).length > word.length) {
| word = words(i)
| idx = i
| }
| (word, idx)
| }
longestWord: (words: Array[String])(String, Int)
次に、メソッドの例を示します.
scala> val longest = longestWord("The quick brown fox".split(" "))
longest: (String, Int) = (quick,1)
メタグループの要素にアクセスするには、メソッドを使用します.1最初の要素にアクセス、2.2番目にアクセスします.
scala> longest._1
res3: String = quick
scala> longest._2
res4: Int = 1
また、メタグループの各要素を独自の変数に割り当てることもできます.次のようにします.
scala> val (word, idx) = longest
word: String = quick
idx: Int = 1
scala> word
res5: String = quick
また、カッコを外すと、次のような結果が得られます.
scala> val word, idx = longest
word: (String, Int) = (quick,1)
idx: (String, Int) = (quick,1)