元组是不可变的,但是元组可以包含不同类型的元素。元组的定义很简单,直接将一组值用圆括号()包含起来即可,例如:
val t = (1, 3.14, "red")
以上实例定义了一个包含三个元素的元组。我们也可以使用下面这种方法来定义上面的元组:
val t = new Tuple3(1, 3.14, "red")
上述例子的Tuple3中的数字3表示3个元素,该数字最大可以到22。对于更大的长度可以使用集合,或者扩展元组,也可以直接使用圆括号来定义。访问元组的元素可以使用数字索引。
1.定义和使用元组
以下实例演示了元组的定义和使用:
object Test1 {
def main(args:Array[String]){
val t = (1,2,3,4);
println(t);
val sum = t._1 + t._2 + t._3 + t._4;
println("sum = " + sum);
}
}
编译并执行以上代码,输出结果如下:
E:\Scala>scalac Test1.scala
E:\Scala>scala Test1
(1,2,3,4)
sum = 10
2.迭代输出元组的元素
可以使用Tuple.productIterator()方法来迭代输出元素的所有元素:
object Test2 {
def main(args:Array[String]){
val t = (1,2,3,4);
t.productIterator.foreach{ i =>
println("value = " + i);
}
}
}
编译并执行上述代码,输出结果如下:
E:\Scala>scalac Test2.scala
E:\Scala>scala Test2
value = 1
value = 2
value = 3
value = 4
3.元组转换为字符串
可以使用Tuple.toString()方法将元组的所有元素组合成一个字符串,实例如下:
object Test3{
def main(args:Array[String]){
val t = (1,"hello", Console);
println(t.toString());
}
}
编译并执行上述代码,输出结果如下:
E:\Scala>scalac Test3.scala
E:\Scala>scala Test3
(1,hello,scala.Console$@15ff3e9e)
4.元组元素交换
可以使用Tuple.swap方法来交换元组的元素:
object Test4 {
def main(args:Array[String]){
val t = (1,2);
println("before swap = " + t);
println("after swap = " + t.swap);
}
}
编译并执行上述代码,输出结果如下:
E:\Scala>scalac Test4.scala
E:\Scala>scala Test4
before swap = (1,2)
after swap = (2,1)
网友评论