2011-02-03 29 views
3

我的意思是,我知道它是什麼意思:拿到列表併爲其中的每個元素添加1;即相當於map (1 + _)。我不明白的是斯卡拉知道它是相同的。這裏發生了什麼?是什麼意思:地圖(1 +)

編輯

丹尼爾指出,這是一個更具普遍性的問題。例如

def g(f : Int => Int, x : Int) = f(f(x)) 
g((1 +), 2) 
res12: Int = 4 

這很酷。我每天都會發現Scala可以做的一件新事物。我想我正在尋找這個特定的東西的完整描述(最好是名字)。

+1

http://www.scala-lang.org/node/135 – 2011-02-03 14:48:37

回答

8

它去有點像這樣:

  1. map需要一個功能Int => B(在這種情況下)。
  2. 1 +未解析爲函數Int => B,請嘗試其他操作。
  3. 1 +可以從期望Int參數的方法解除爲函數Int => Int

Presto。

一個使用1 + _解決歧義。