Akashic Records

익스텐션 함수 본문

Kotlin for Beginners

익스텐션 함수

Andrew's Akashic Records 2023. 6. 2. 10:34
728x90

익스텐션 함수는 Kotlin의 강력한 기능 중 하나로, 기존 클래스에 새로운 메서드를 추가하는 것처럼 사용할 수 있습니다. 이 기능은 클래스의 정의를 변경하지 않고도 클래스의 기능을 확장하게 해줍니다.

  1. 익스텐션 함수의 선언

익스텐션 함수는 "클래스명.함수명"의 형태로 선언됩니다. 함수 내부에서 this 키워드를 사용하면 해당 클래스의 인스턴스를 가리킵니다.

예제:

fun String.hello(): String {
    return "Hello, $this!"
}

println("Kotlin".hello())  // 출력: Hello, Kotlin!

이 예제에서 String 클래스에 hello 익스텐션 함수를 추가했습니다. thisString 인스턴스를 가리키며, "Kotlin".hello()를 호출하면 "Hello, Kotlin!"이 출력됩니다.

  1. 익스텐션 함수와 멤버 함수

만약 클래스의 멤버 함수와 동일한 시그니처를 가진 익스텐션 함수가 있을 경우, 멤버 함수가 우선순위를 가집니다. 이는 익스텐션 함수가 멤버 함수를 오버라이드할 수 없기 때문입니다.

예제:

class MyClass {
    fun foo() {
        println("Member function")
    }
}

fun MyClass.foo() {
    println("Extension function")
}

val myClass = MyClass()
myClass.foo()  // 출력: Member function

이 예제에서 MyClassfoo 멤버 함수와 foo 익스텐션 함수가 있습니다. myClass.foo()를 호출하면 멤버 함수가 실행됩니다.

익스텐션 함수는 기존 클래스를 수정하지 않고도 클래스의 기능을 확장하는 강력한 도구입니다. 이를 통해 코드의 재사용성과 가독성을 향상시킬 수 있습니다.

728x90

'Kotlin for Beginners' 카테고리의 다른 글

컬렉션  (0) 2023.06.02
고차 함수  (0) 2023.06.02
람다 표현식  (0) 2023.06.02
Null 안정성  (0) 2023.06.02
추상화와 캡슐화  (0) 2023.06.01
Comments