上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
第9步 使用元组
另一个有用的容器对象是元组(tuple)。与列表类似,元组也是不可变的,不过与列表不同的是,元组可以容纳不同类型的元素。列表可以是List[Int]或List[String],而元组可以同时包含整数和数组。当需要从方法返回多个对象时,元组非常有用。在Java中遇到类似情况时,你通常会创建一个类似JavaBean那样的类来承载多个返回值,而用Scala可以简单地返回一个元组。元组用起来很简单:要实例化一个新的元组,只需要将对象放在圆括号中,用逗号隔开即可。一旦实例化好一个元组,就可以用圆括号以从0开始的下标来访问每一个元素,如示例3.4所示。
示例3.4 创建并使用一个元组
在示例3.4的第一行,创建了一个新的元组,包含了整数99作为其第一个元素,以及字符串"Luftballons"作为其第二个元素。Scala会推断出这个元组的类型是Tuple2[Int, String],并将其作为变量pair的类型。[5]在第二行,通过下标0访问第一个元素,即99。[6]pair(0)的结果类型是Int。在第三行,通过下标1访问第二个元素,即"Luftballons"。pair(1)的结果类型是String。这说明元组会如实记录每个元素的类型。
元组的实际类型取决于它包含的元素及元素的类型。因此,元组(99, "Luftballons")的类型是Tuple2[Int, String],而元组('u', 'r', "the", 1, 4, "me")的类型是Tuple6[Char, Char, String, Int, Int, String]。[7]