아이템 44: 멤버 확장 함수의 사용을 피하라

이펙티브 코틀린(클래스설계)

아이템 44: 멤버 확장 함수의 사용을 피하라

확장함수는 첫 번째 아규먼트로 리시버를 받는 단순한 일반 함수로 컴파일된다

맴버 확장을 피해야 하는 이유

  • 레퍼런스를 지원하지 않는다
  • 암묵적으로 접근할때 두 리시버중에 어떤 리시버를 선택할지 혼동된다
  • 확장 함수가 외부에 있는 다른 클래스를 리시버로 받을때 해당 함수가 어떤 동작을 하지는 명확하지 않다
  • 경험이 적은 개발자의 경우 화장 함수를 보면 직관적이지 않거나 심지어 보기만 해도 겁먹을수 있다

참조