Scala元组知识点
(大神请直接跳过此部分,查看后文)
4.3. 元组(Tuple)
映射:映射是K/V对的集合。
元组:K/V对是元组的最简单形式,元组可以装着多个不同类型的值,是不同类型的值的聚集。
4.3.1. 创建访问元组
a、创建元素的一种方式
b、创建元组的第二种方式
目前 Scala 支持的元组最大长度为 22。对于更大长度你可以使用集合,或者扩展元组
4.3.2. 创建访问元组
a、元组的取值方式
访问组元:使用_1, _2, _3等访问组元。
访问组元:通过给别名定义,也可以通过别名x,y,z,k访问组元。
4.3.3. 元组遍历操作
在对通过别名定义的元组进行测试时,发现如下现象:
元组别名.x可以原样输出元组
由此产生了一些疑问:
.x是否是Scala元组的一个参数?该参数的含义是什么?是否还有其它类似的参数?
测试1:
结论1:x不是元组中第一个元素的名字,比如在测试1中,第一个元素的名字为x1,但.x依然生效。
测试2:
结论2:通过元组.26个字母进行测试,暂时未发现除.x外的其它参数可用。
结论(疑惑)综述: Scala元组中别名.x的含义应该元组的一个参数,含义是获取元组本身,暂时未发现其它可用的参数。(个人测试结论) 由此更觉得奇怪,Scala API没有该参数的说明,但参数可用,是否是开发者的一个遗留漏洞,还是有意而为?是否还有其它可用参数?
2018.11.21更新
通过查看源码,终于大概知道了.x是什么,如图:
总结:x表示apply 注入,提取方法,所以会返回元组本身。
感悟:
自己太无知了,因此还需要虚心学习,另外,要养成看源码的好习惯。
欢迎交流,邮箱liuyaowen005@163.com