코틀린 (Kotlin) 확장 함수와 확장 프로퍼티
코틀린 확장 함수 코틀린는 기존 클래스에 메소드를 추가할 수 있습니다. 이를 확장 함수라고 합니다. 확장 함수는 static 메소드 입니다. 자바의 String 클래스에 lastChar() 라는 메소드를 추가해서 "zerog".lastChar() 처럼 기존 클래스의 메소드인것처럼 사용할 수 있습니다. fun String . lastChar ():Char = this. get ( this . length - 1) //this 생략 가능 fun String . lastChar ():Char = get ( length - 1) String 자바 클래스에는 lastChar() 라는 메소드가 없지만, 확장 함수로 생성해서 String 클래스의 메소드인것처럼 사용합니다. String . lastChar () 중 String 을 수신 객체 타입 (receiver type) 이라고 합니다. lastChar ():Char 중 lastChar () 는 확장 함수의 이름 이고 :Char 는 반환 타입 입니다. this. get (this. length - 1) 중 this 를 수신 객체 (receiver object) 라고 합니다. 확장 함수의 블럭 안에서는 this.get(this.length - 1) 처럼 원래 갖고 있던 메소드를 호출할 수도 있으며 this 는 생략이 가능 합니다. 단, 클래스의 메소드 중 private , protected 접근자인 경우 호출할 수 없습니다 . 확장 함수 이름은 짧게 하는 것이 좋습니다. 제네릭을 이용하면 좀 더 유연한 확장 함수가 됩니다. fun < T > Collection< T >. joinToString (separator: String = "," , prefix: String = "(" ,