Scala 元组Tuple学习

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

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


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

[color=blue][b]元组有什么用?请设想,有一个函数,返回一个类Weather,然后有一天,老板让你多返回些信息,比如有没有雾霾,能不能外出,而你没有修改Weather的权限,怎么办?通常的办法是,再建个新类,把Weather和新信息封进去。[/b][/color]在Scala里,不需要那么麻烦,[color=red][b]交给元组就好了,把原来的Weather和新的信息用括号包起来,So easy![/b][/color]

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


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


[b]得到的输出会是这样的:[/b]

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


[size=large][color=red][b]注意:元组的索引是从1开始的[/b][/color][/size]

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

val (length, width, height) = (1.3, 0.7, 1.8)


这样定义之后单独使用length、width、height都没有问题。

元组还有一种特定用法,当是二元组时,可以简单定义成:1 -> "one",等效于(1, "one")。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值