[scala] 스칼라 밑줄-오류 : 확장 함수에 대한 매개 변수 유형이 없습니다.

이것에 대해 꽤 많은 질문이 있음을 알고 있지만 작동해야한다고 생각하는 간단한 예제를 만들었지 만 여전히 작동하지 않으며 그 이유를 잘 모르겠습니다.

val myStrings = new Array[String](3)
// do some string initialization

// this works
myStrings.foreach(println(_))


// ERROR: missing parameter type for expanded function
myStrings.foreach(println(_.toString))

누군가 두 번째 문장이 컴파일되지 않는 이유를 설명 할 수 있습니까?



답변

다음으로 확장됩니다.

myStrings.foreach(println(x => x.toString))

원하는 :

myStrings.foreach(x => println(x.toString))

익명 함수의 자리 표시 자 구문은 가능한 가장 작은 포함 표현식을 함수로 바꿉니다.


답변