Scala编程基础20:Scala元组

2020-04-08  本文已影响0人  金字塔下的小蜗牛

元组是不可变的,但是元组可以包含不同类型的元素。元组的定义很简单,直接将一组值用圆括号()包含起来即可,例如:

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)

上一篇 下一篇

猜你喜欢

热点阅读