Scala apply
에서 클래스 나 최상위 객체에서 호출되는 메서드를 정의하면 해당 클래스의 인스턴스에 괄호 쌍을 추가하고 그 apply()
사이에 적절한 인수를 넣을 때마다 해당 메서드가 호출 됩니다. 예를 들면 :
class Foo(x: Int) {
def apply(y: Int) = {
x*x + y*y
}
}
val f = new Foo(3)
f(4) // returns 25
그러니까 기본적으로, object(args)
단지 문법 설탕입니다 object.apply(args)
.
Scala는이 변환을 어떻게 수행합니까?
Predef 개체의 암시 적 형식 변환과 비슷하지만 종류가 다른 전역 정의 암시 적 변환이 여기에서 진행되고 있습니까? 아니면 더 깊은 마법인가요? 나는 Scala가 많은 예외를 가진 많은 규칙보다 더 작은 규칙 세트의 일관된 적용을 강력하게 선호하는 것처럼 보이기 때문에 묻습니다. 이것은 처음에는 나에게 예외처럼 보입니다.