클래스 확장
- 일반적인 클래스 확장은 상속을 이용
- 클래스 내부에 선언된 함수와 프로퍼티 이외에 다른 프로퍼티나 함수를 추가
- 확장 함수는 기존 클래스 내에 정적으로 추가되지는 않음
- OOP 다형성 불가
- super 클래스의 함수 호출 불가ㅐ
프로퍼티 확장
- 프로퍼티 확장 가능
- getter에 의해 초기화해야 함
확장 구문의 위치에 따른 이용
- Top-level에 작성
- 확장 대상 클래스와 확장 프로퍼티or 함수를 따로 import해야 함
- 다른 클래스 내에서 작성
- extension receiver: 확장 대상이 되는 클래스
- dispatch receiver: 확장 구문이 작성된 클래스
- dispatch receiver 클래스 안에서만 사용 가능