天天看点

Scala学习笔记之元组`Tuple`Scala学习笔记之元组Tuple

Scala学习笔记之元组

Tuple

元组是Scala提供的一种特殊的数据结构,或者说是一块语法糖,它允许多个不同类型的元素组合在一起被使用,如下所示:

val tup = (1, 3.14, "元组", true)

这是一个四元组,由4个元素组成。Scala目前的版本支持最多22元组。一元组类是存在的,但没有对应的内建语法,所以单纯的用括号把一个值围起来没什么卵用。零元组也是存在的,就是

Unit

了。

元组有什么用?请设想,有一个函数,返回一个类

Weather

,然后有一天,老板让你多返回些信息,比如有没有雾霾,能不能外出,而你没有修改

Weather

的权限,怎么办?通常的办法是,再建个新类,把

Weather

和新信息封进去。在Scala里,不需要那么麻烦,交给元组就好了,把原来的

Weather

和新的信息用括号包起来,So easy!

返回来的元组要怎么使用?同样很简单,有两种方式,以最开始给的四元组为例,第一种方式,使用索引:

val tup = (, , "元组", true)
println(tup._1)
println(tup._4)
           

得到的输出会是这样的:

true
tup: (Int, Double, String, Boolean) = (,,元组,true)
           

注意:元组的索引是从1开始的

第二种方式是类似于具名参数一样,给每个元素起个名字:

val (length, width, height) = (, , )
           

这样定义之后单独使用

length

width

height

都没有问题。

元组还有一种特定用法,当是二元组时,可以简单定义成:

1 -> "one"

,等效于

(1, "one")

有了元组,将元素组合在一起将不再别扭和麻烦,代码将减少很多不必要的冗余,更精简易懂易用。

继续阅读