2014-09-12 3 views
4

해결되고 입력란의 유형이 Option[() => Unit]이 아닌 Option[Unit]입니다.고차 기능

나는 에 변수로 전달되기보다는 foobar이 평가되는 것으로 의심되지만 확실하지 않습니다.

+0

: 당신은 명시 적으로 밑줄 연산자 ETA 확장을 호출하여 첫 ​​번째 예제를 해결할 수있는 옵션 [() => 단위] 일부 (를) = ' – roterl

답변

12

빈 괄호 방법을 평가할 때 괄호는 선택 사항이므로 선택해야합니다. 관습에 따라, 그들은 순수한 방법으로 중단되지만, 그것은 단지 관습입니다. 여러분이 옳아 요, 실제로는 eta가 아닌 foobar를 평가하여 함수로 확장합니다. `옵션 : 나도 같은 결과를 얻고 두 사건에 대한 사실

val option: Option[() => Unit] = Some(foobar _) 
+0

감사합니다. 나는 컴파일러 *가이 경우에 의미했던 것을 추측 할 수 있어야한다고 생각하지만 모호 할 수 있다는 것을 알 수 있습니다. – letsgoyeti