scala编程第17章学习笔记(4)——元组
元组可以把固定数量的条目组合在一起以便于作为整体传送。不像数组或列表,元组可以保存不同类型的对象。
元组常用来返回方法的多个值。例如,下面的方法找到集合中的最长单词并返回它的索引:
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访问第二个,以此类推:
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)