나는 루트 객체와 동일하게 대부분의 호출을 전달하는 래퍼 클래스를 작성하고 있었고 실수로 (매개 변수 이름 x 등의) 전체 정의를 다음과 같이 남겼습니다. 놀랍게도, 그것은 컴파일되었습니다. 그럼 여기서 무슨 일이 일어나고있는거야? 이것은 root.p_에 할당하는 것과 비슷합니까? 나는 그것이 "x"라는 이름을 부탁에 남겨 둘 수 있다는 것이 이상하다는 것을 알았다. 또한 랩된 통화를 전달하는 가장 빠른 (가장 빠른) 방법은 무엇입니까?이것은 왜 컴파일되고 무슨 일이 일어나고 있습니까?
trait A {
def p(x:Int) = println("A"+123)
}
case class B(root:A) {
def p(x: Int): Unit = root.p(x:Int) // WHAT HAPPENED HERE?
}
object Test extends App {
val temp = new A{}
val b = B(temp)
b.p(123)
}
위대한 답변! 이제 왜 구문이 유용한 지 이해합니다 ... – LaloInDublin