이펙티브 코틀린(클래스설계)
아이템 44: 멤버 확장 함수의 사용을 피하라
확장함수는 첫 번째 아규먼트로 리시버를 받는 단순한 일반 함수로 컴파일된다
맴버 확장을 피해야 하는 이유
- 레퍼런스를 지원하지 않는다
- 암묵적으로 접근할때 두 리시버중에 어떤 리시버를 선택할지 혼동된다
- 확장 함수가 외부에 있는 다른 클래스를 리시버로 받을때 해당 함수가 어떤 동작을 하지는 명확하지 않다
- 경험이 적은 개발자의 경우 화장 함수를 보면 직관적이지 않거나 심지어 보기만 해도 겁먹을수 있다
참조