1. 程式人生 > >Scala元組中別名.x的含義

Scala元組中別名.x的含義

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 注入,提取方法,所以會返回元組本身。

感悟:
自己太無知了,因此還需要虛心學習,另外,要養成看原始碼的好習慣。


歡迎交流,郵箱[email protected]