이런 경우 multiplyBy2의 타입은 (Int) -> Int가 아니고 (MyClass, Int) -> Int다. 클래스의 동반 객체에 정의된 함수라면(자바 정적 메서드와 비슷하다) 이를 임포트하거나 다음과 같은 구문으로 사용할 수 있다.
class MyClass { companion object { fun double(n: Int): Int = n * 2 } } val mutliplyBy2: (Int) -> Int = (MyClass)::double
여기서 (MyClass)::double은 다음을 줄여 쓴 것이다.
val mutliplyBy2: (Int) -> Int = MyClass.Companion::double
.Companion이나 괄호를 잊지 말라. 이를 빼먹으면 전혀 다른 결과를 얻게 된다.
val mutliplyBy2: (Int) -> Int = MyClass::double // 컴파일러가 인스턴스 메서드 double을 찾을 수 없다!