Kotlin

코틀린 FAQ_week3

지 슈 2022. 11. 4. 20:07

확장 함수란?

확장 함수: 어떤 클래스의 멤버 메서드인 것처럼 호출할 수 있지만 그 클래스의 밖에서 선언된 함수

선언 : 수신 객체 타입+추가하려는 함수 이름():타입 = ~

수신 객체 타입: 확장되는 클래스

수신 객체: 확장 함수가 호출되는 대상이 되는 값

String: 확장되는 클래스

lastChar(): 불러오려는 함수

 

 

확장 프로퍼티란?

확장 프로퍼티도 일반 프로퍼티와 같지만 수신 객체 타입(확장되는 클래스)만 추가된다.

사용 방법도 일반 프로퍼티와 동일하게 사용된다.

필드(멤버 변수)가 없어서 게터를 꼭 정의해야 한다.

기존 클래스 객체에 프로퍼티 형식의 구문으로 API를 추가해서 추가적인 기능을 사용할 수 있게 한다.

API를 추가한다는 것 : 실제로 컬렉션에 추가되는 것은 아니지만 기존의 컬렉션에 프로퍼티를 사용해서 추가적인 기능을 사용하는 API를 추가한다는 것.

위의 예시에서는 String. lastChar 자체가 새로운 API가 된다.

확장 프로퍼티를 사용하면 더 짧게 코드를 작성할 수 있어서 편리하다.

 

 

중위 호출이란?

중위 표현법은 변수와 변수 사이에 함수를 넣어서 연산자처럼 사용하는 것.

a multi b

처럼 사용할 수 있다.

infix 키워드를 사용해서 함수 선언.

수신 객체와 유일한 메서드 인자 사이에 메서드 이름을 넣는다.

(메서드가 꼭 확장 함수일 필요는 없다.)