Scala 元组

简介

与列表一样,元组也是不可变的,但与列表不同的是元组可以包含不同类型的元素。
元组的值是通过将单个的值包含在圆括号中构成的。例如:

元组定义

val t = (1, 3.14, "Fred")

t: (Int, Double, String) = (1, 3.14, "Fred")  

以上实例在元组中定义了三个元素,对应的类型分别为[Int, Double, java.lang.String]。

此外我们也可以使用以上方式来定义:

val t = new Tuple3(1, 3.14, "Fred")

t: (Int, Double, String) = (1, 3.14, "Fred")

组的实际类型取决于它的元素的类型,比如 (99, “runoob”) 是 Tuple2[Int, String]。 (‘u’, ‘r’, “the”, 1, 4, “me”) 为 Tuple6[Char, Char, String, Int, Int, String]。

目前 Scala 支持的元组最大长度为 22。对于更大长度你可以使用集合,或者扩展元组。
访问元组的元素可以通过数字索引,如下一个元组:

val t = Tuple22(1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,4,5,6,7,8,9,10)

t: (Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int) = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
val t = Tuple23(1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,4,5,6,7,8,9,10,11)


Main.scala:24: not found: value Tuple23
Tuple23(1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,4,5,6,7,8,9,10,11) 
^

元组访问

t._1

res3: Int = 4

我们可以使用 t._1 访问第一个元素, t._2 访问第二个元素


迭代元组

你可以使用 Tuple.productIterator() 方法来迭代输出元组的所有元素:

val t = (4,3,2,1)
t.productIterator.foreach{ i =>println("Value = " + i )}

Value = 4
Value = 3
Value = 2
Value = 1

元组转为字符串

你可以使用 Tuple.toString() 方法将元组的所有元素组合成一个字符串,实例如下:

 val t = new Tuple3(1, "hello", Console)
println("连接后的字符串为: " + t.toString() )


连接后的字符串为: (1,hello,scala.Console$@5d232f8c)
t: (Int, String, Console.type) = (1, "hello", scala.Console$@5d232f8c)

元素交换

你可以使用 Tuple.swap 方法来交换元组的元素顺序。如下实例:

 val t = new Tuple2("111", "222")
println("交换后的元组: " + t.swap )


交换后的元组: (222,111)
t: (String, String) = ("111", "222")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值