例如,你爲什麼不能做?:以下爲什麼不能使用佔位符語法將地圖佔位符與自身相乘?
List(1, 2, 3).map(_ * _)
然而,它有可能做到:
List(1, 2, 3).map(x => x * x)
在這種情況下,結果是一個1 9名單,4, 。我知道還有其他解決這個問題的方法,但我主要只是想明白爲什麼這不起作用。
例如,你爲什麼不能做?:以下爲什麼不能使用佔位符語法將地圖佔位符與自身相乘?
List(1, 2, 3).map(_ * _)
然而,它有可能做到:
List(1, 2, 3).map(x => x * x)
在這種情況下,結果是一個1 9名單,4, 。我知道還有其他解決這個問題的方法,但我主要只是想明白爲什麼這不起作用。
每個下劃線指的是一個新的參數,按順序。
因此_ * _
是(x, y) => x * y
的簡寫 - 不是(x, y) => y * x
或x => x * x
。
map
採用將單個值映射到新值的函數。因此_ * _
與它不兼容。
因爲map
操作只需要一個參數 - 您映射一個元素。你需要創建一個運算符,它自己乘以變量
注意解釋downvote? – Seer
對我來說這似乎是一個合理的問題,我給了你一個贊成票,因爲我認爲其他人會覺得它有用。 – Oli