새소식

반응형
250x250
My Study/Kotlin

Study About Kotlin 9

  • -
728x90
반응형

Kotlin의 다양한 함수 사용법

틀린은 개발자의 편의를 위해 다양한 함수를 제공한다. 이번 포스트에서는 확장 함수, 멤버 함수, 인픽스 함수, 인라인 함수, 지역 함수 등 코틀린의 다양한 함수 사용법에 대해 알아볼 거다.

 

확장함수

확장 함수는 기존 클래스에 새로운 함수를 추가할 수 있는 기능이다.

이 함수는 클래스 밖에서 정의되지만, 클래스의 메서드처럼 사용할 수 있다.

단, 확장 함수는 원본 클래스의 private 또는 protected 멤버에 접근할 수 없다.

fun String.lastChar(): Char = this[this.length - 1]

 

위 예시는 String 클래스에 lastChar라는 확장 함수를 추가하는 방법을 보여준다.

이 함수는 문자열의 마지막 문자를 반환한다.

 

멤버함수 vs 확장함수

멤버 함수와 확장 함수가 동일한 시그니처를 가질 경우, 멤버 함수가 우선적으로 호출된다.

확장 함수는 해당 타입의 인스턴스에서만 호출할 수 있다.

class Example {
    fun print() = println("멤버 함수")
}

fun Example.print() = println("확장 함수")

fun main() {
    val example = Example()
    example.print() // "멤버 함수" 출력
}

 

확장 프로퍼티

확장 함수와 마찬가지로, 확장 프로퍼티를 사용하여 클래스에 새로운 프로퍼티를 추가할 수 있다.

이는 custom getter를 포함한 확장 함수와 유사하다.

val String.lastChar: Char
    get() = this[length - 1]

 

Infix 함수

인픽스 함수는 함수 호출 시 사용하는 새로운 방법을 제공한다. 이를 통해 코드를 더 읽기 쉽게 만들 수 있다.

infix fun Int.add(other: Int): Int = this + other

fun main() {
    val result = 1 add 2 // 인픽스 함수 호출
    println(result) // 3 출력
}

 

Inline 함수

인라인 함수는 함수가 호출되는 대신 해당 위치에 함수 본문이 복사되는 함수다.

이는 성능 측정과 함꼐 신중하게 사용되어야 한다.

inline fun inlineFunction(block: () -> Unit) {
    println("Before block")
    block()
    println("After block")
}

 

지역함수

함수 내부에 다른 함수를 정의하는 것을 지역 함수라고 한다. 이를 통해 코드의 가독성을 높일 수 있다.

fun outerFunction() {
    fun localFunction() = println("지역 함수")
    localFunction()
}

 

이상으로 코틀린에서 다양한 함수를 다루는 방법에 대해 알아봤다. 확장 함수, 인픽스 함수, 인라인 함수 등을 적절히 활용하면 코드의 가독성과 유지보수성을 크게 향상시킬 수 있다.

728x90
반응형

'My Study > Kotlin' 카테고리의 다른 글

Study About Kotlin 10  (0) 2024.04.03
Study About Kotlin 8  (0) 2024.03.28
Study About Kotlin 7  (0) 2024.03.26
Study About Kotlin 6  (0) 2024.03.09
Study About Kotlin 5  (0) 2024.02.28
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.