Я был смущен этим некоторое время, даже несмотря на то, что прочитал Руководство по стилю Scala - Метод Вызов несколько раз.
Я хочу иметь возможность вызывать этот метод
def foldRVL[A,B](l: List[A], z: B)(f: (A, B) => B) = //"Right-Via-Left"
l.reverse.foldLeft(z)((a, b) => f(b, a))
используя запись через точку, как это List(1,2,3).foldRVL(0)(_ + _)
.
А не так: foldRVL(List(1,2,3), 0)(_ + _)
.
Кроме того, иногда я видел код, который показывает методы, которые на самом деле либо принимают в своей сигнатуре нулевые параметры, либо на один параметр меньше, чем я ожидал, и все же правильно принимают параметр с использованием точечной записи. Как это работает? Я спрашиваю об этом, потому что эти методы работают с точечной нотацией, поэтому, возможно, если бы я написал что-то подобное, я мог бы решить свою проблему.
this
, и это не так сложно: это ссылка на экземпляр окружающего класса, для которого был вызван метод. См. en.wikipedia.org/wiki/This_(computer_programming). - person JimN   schedule 25.07.2015