Tuple 是n 个对象的聚集,这n 个对象不必相同数据类型,Tuple 对应到数学的矢量概念。Tuple 可以包含不同类型的数据,而List 只能包含同类型的数据,映射不过是一个n=2 的元组特例。
与列表和数组不同,没有办法迭代元组中的元素,它的目的只是作为一个多个值的容器,元组多用于函数返回值不止一种的情况。一旦定义了一个元组,可以使用._和索引来访问员组的元素,元组的索引从1 开始,而且元组的值是不可改变的。
一、Tuple 的创建
可以通过两种方式创建一个元组:
(1)用逗号分隔的值写入值,并用一对括号括起来
scala> val tuple1 = (1, false, "Scala")
tuple1: (Int, Boolean, String) = (1,false,Scala)
(2)通过new Tuplen(数据列表)创建,元素有几个Tuple 后面的n 就为几
scala> val tuple2 = new Tuple3(1, false, "Scala")
tuple2: (Int, Boolean, String) = (1,false,Scala)
scala> val tuple3 = new Tuple2(1, false)
tuple3: (Int, Boolean) = (1,false)
元组的实际类型取决于它的元素的类型,比如(1, false)是Tuple2(Int, Boolean),目前Scala 支持的元组最大长度为22。在创建两个元素的元组时,可以使用特殊语法->:
scala> val tuple4 = "1" -> "one"
tuple4: (String, String) = (1,one)
二、Tuple 的基本操作
1. Tuple 元素的访问
Tuple 元素的访问可以通过“_下标”,也可以通过模式匹配来访问元组中的值。(www.daowen.com)
scala> tuple1._1
res148: Int = 1
scala> tuple1._2
res149: Boolean = false
scala> tuple1._3
res150: String = Scala
//模式匹配
scala> val (a, b, c) = tuple1
a: Int = 1
b: Boolean = false
c: String = Scala
2. Tuple 的遍历
使用Tuple.productIterator 方法来完成Tuple 的遍历。
scala> tuple1.productIterator.foreach(i =>println(i))
1
false
Scala
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。