[英]What does { val x = a; b.:::(x) } mean in Scala?
我是Scala的新手,正在學習一本有關它的書(《 Scala中的編程》 )。 我真的迷失了,作者試圖用下面的代碼解釋什么。 誰能詳細解釋一下?
{ val x = a; b.:::(x) }
:::
是一種方法,它將作為參數指定的列表放在調用它的列表的前面
你可以這樣看
val a = List(1, 2)
val b = List(3, 4)
val x = a
b.prependList(x)
但是實際上對於單參數方法,如果它不是模棱兩可的話,scala允許跳過括號和點,這就是應該使用這種方法看起來不難看的方式
x ::: b
它只會加入這兩個列表,但是這里有一些技巧
如果方法名以:結尾,它將以另一種方式綁定
因此,鍵入x ::: b
就像完成這種事情(x):::.b
。 您顯然不能在scala中鍵入這樣的內容,也不會進行編譯,但這就是發生的情況。 由於這個x
在運算符的左側,並且其元素將在此調用結果列表的左側(開始)。
哦,好了,現在我發現可能為您提供了更多說明,並且還發布了與您發布的代碼相同的代碼,以回答以下問題: Scala中的右關聯方法有什么用?
假設a和b是列表:它將a
分配給x
,然后返回以列表x
開頭的列表b
。
例如,如果val a = List(1,2,3)
和val b = List(4,5,6)
則返回List(1,2,3,4,5,6)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.