Почему и когда мне нужно следовать имени метода с _?

Я немного неуверен в правилах относительно того, когда вам нужно_ после метода, чтобы использовать его как функцию. Например, почему есть разница междуFooиNil«s:: В следующих?

def square(n: Int) = n * n  
object Foo { def ::(f: Int => Int) = f(42) }

// ...

scala> Foo.::(square)
res2: Int = 1764

scala> Nil.::(square) 
<console>:6: error: missing arguments for method square in object $iw;
follow this method with `_' if you want to treat it as a partially applied function
   Nil.::(square)
          ^
scala> Nil.::(square _) 
res3: List[(Int) => Int] = List(<function1>)

Ответы на вопрос(1)

Ваш ответ на вопрос