다음 함수 호출이 모두 같음을 알지만 왜 그런지 이해하지 못합니다.Scala는 다른 형식의 함수 호출을 어떻게 이해할 수 있습니까?
val list = List(List(1), List(2, 3), List(4, 5, 6))
list.map(_.length) // res0 = List(1,2,3) result of 1st call
list map(_.length) // res1 = List(1,2,3) result of 2nd call
list map (_.length) // res2 = List(1,2,3) result of 3rd call
지도 클래스 목록
의 멤버 함수이기 때문에 난 그냥 일반 함수 호출 첫번째 호출을 이해할 수있다하지만 2 층과 3 전화를 이해할 수 없습니다. 예를 들어, 세 번째 호출에서 스칼라 컴파일러는 "(_.length)"가 "map"의 매개 변수라는 것을 어떻게 알 수 있습니까? 컴파일러는 "map"이 "list"의 멤버 함수라는 것을 어떻게 알 수 있습니까?
@LuigiPlinge : 오, 그래, 고마워. 그건 내 잘못한 의견이었습니다. 그것을 제거했다. –