簡體   English   中英

{val x = a;是什么? b.:::(x)}在Scala中表示什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM