본문 바로가기
코틀린

아토믹 코틀린 30 - 확장함수

by 밝지 2023. 10. 15.
728x90
반응형
  • 코틀린의 확장함수는 기존 클래스에 멤버 함수를 추가하는 효과
  • receiver type (수신객체타입) - 확장할 대상의 타입
    • 확장 함수를 정의할 때 함수 이름 앞에 수신 객체 타입을 붙여줘야 한다.
// 예)
fun String.singleQuote() = "'$this'"
  • 확장 함수는 '수신 객체 타입의 멤버함수'인 것처럼 호출할 수 있다.
  • 다른 패키지에서 확장 함수를 쓰려면 import 해야한다.
  • 확장 함수는 수신 객체 타입(=확장 대상 타입)의 public 원소에만 접근할 수 있다. 
  • 확장 함수를 사용하는 장점은 '구문적 편의'를 얻는 것이다.
fun Book.categorize(String)
fun categorize(Book, String)
// 위 두 함수는 같다. 
// 하지만 전자가 구문적으로 낫다.
728x90
반응형