Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

밤빵's 개발일지

[TIL]20241023 Infix Function 본문

Kotlin

[TIL]20241023 Infix Function

최밤빵 2024. 10. 23. 20:16

중위 함수(Infix Function)는 코틀린에서 코드의 가독성을 높여주는 기능으로, 함수 호출을 더 간결하고 직관적으로 작성할 수 있게 해준다. 이 기능을 통해 일반적인 함수 호출보다 코드가 더 쉽게 읽히고 이해될 수 있다.

 

▶중위 함수란?

중위 함수(Infix Function)란 두 객체 사이에서 마치 연산자처럼 사용할 수 있는 함수이다. 일반적인 함수 호출에서 사용하는 점(.) 연산자와 괄호를 생략하고 함수명을 객체와 객체 사이에 배치하여 호출할 수 있다. 이로 인해 함수 호출이 자연어처럼 읽히는 형태로 변환되어 가독성을 높이는 효과가 있다.

 

▶중위 함수 선언 방법

중위 함수는 다음 세 가지 조건을 만족해야 한다.

  • 멤버 함수이거나 확장 함수여야 한다.
  • 매개변수가 하나만 있어야 한다.
  • infix 키워드를 사용하여 선언해야 한다.
infix fun 클래스명.함수명(매개변수명: 타입): 반환타입 {
    // 함수 내용
}

 

▶중위 함수 사용 예시

class Person(val name: String) {
    infix fun greet(otherPerson: Person): String {
        return "$name이(가) ${otherPerson.name}에게 인사합니다."
    }
}

fun main() {
    val person1 = Person("Anna")
    val person2 = Person("Elsa")

    // 중위 함수 호출
    println(person1 greet person2)  // Anna가 Elsa에게 인사합니다.
}

→ Person 클래스의 greet라는 함수가 중위 함수로 선언되었다. 이 함수는 Anna와 Elsa라는 두 Person 객체가 서로 인사하는 내용을 출력한다. 일반적인 함수 호출 방식은 person1.greet(person2)이지만, 중위 함수로 선언한 덕분에 person1 greet person2처럼 직관적이고 자연스러운 방식으로 호출할 수 있다. 이는 마치 영어 문장을 작성하듯 읽히기 때문에 코드 가독성이 높아진다.

 

▶중위 함수의 활용

중위 함수는 특히 연산자처럼 동작하는 함수를 만들 때 유용하게 활용된다. 예를 들어, 두 숫자를 더하거나 비교하는 함수, 혹은 컬렉션을 조작하는 함수 등을 중위 함수로 작성하면 코드가 훨씬 간결해진다.

infix fun Int.plus(other: Int): Int {
    return this + other
}

fun main() {
    val result = 10 plus 5
    println(result)  // 15
}

→  Int 타입의 확장 함수로 plus라는 중위 함수를 선언했다. 10 plus 5처럼 읽기 쉬운 방식으로 두 숫자를 더할 수 있다.

 

▶중위 함수와 일반 함수의 차이

중위 함수와 일반 함수는 동일한 기능을 수행할 수 있지만, 호출 방식에서 차이가 있다. 일반 함수는 점(.)과 괄호를 사용해야 하지만, 중위 함수는 점과 괄호 없이 간결하게 사용할 수 있다.

// 일반 함수 호출 방식
val result = 10.plus(5)

// 중위 함수 호출 방식
val result = 10 plus 5

→ 두 코드는 동일한 기능을 하지만, 중위 함수는 더 직관적이고 코드의 가독성을 높이는 데 도움이 된다.

 

▶중위 함수의 장점과 주의사항

▷장점

  • 가독성 향상: 중위 함수는 코드가 보다 자연스럽게 읽히도록 돕는다.
  • 간결한 코드: 점(.)과 괄호를 생략하여 코드를 간결하게 작성할 수 있다.
  • 유연한 함수 호출: 수학적 연산이나 논리적 비교 등 직관적인 연산을 처리하는 데 유리하다.

▷주의사항

  • 복잡한 로직에는 부적합: 중위 함수는 가독성을 높이는 데 유리하지만, 복잡한 로직을 처리할 때는 오히려 가독성을 해칠 수 있다.
  • 매개변수 하나만 사용 가능: 중위 함수는 매개변수가 하나여야만 사용할 수 있다는 제약이 있다.

중위 함수는 코드를 간결하고 읽기 쉽게 만들어주는 코틀린의 기능 중 하나로, 특히 연산자처럼 자연스러운 표현으로 코드를 작성할 수 있게 해준다. 그러나 매개변수가 하나인 간단한 함수에 주로 사용된다는 점과 복잡한 로직에는 적합하지 않다는 점도 함께 고려해야 한다. 코틀린의 중위 함수는 간단한 연산이나 조건 처리를 자연스럽고 쉽게 작성할 수 있는 도구로, 앞으로 개발 과정에서 매우 유용할 것이라고 기대된다😆