밤빵's 개발일지
[TIL]20241023 Infix Function 본문
중위 함수(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
→ 두 코드는 동일한 기능을 하지만, 중위 함수는 더 직관적이고 코드의 가독성을 높이는 데 도움이 된다.
▶중위 함수의 장점과 주의사항
▷장점
- 가독성 향상: 중위 함수는 코드가 보다 자연스럽게 읽히도록 돕는다.
- 간결한 코드: 점(.)과 괄호를 생략하여 코드를 간결하게 작성할 수 있다.
- 유연한 함수 호출: 수학적 연산이나 논리적 비교 등 직관적인 연산을 처리하는 데 유리하다.
▷주의사항
- 복잡한 로직에는 부적합: 중위 함수는 가독성을 높이는 데 유리하지만, 복잡한 로직을 처리할 때는 오히려 가독성을 해칠 수 있다.
- 매개변수 하나만 사용 가능: 중위 함수는 매개변수가 하나여야만 사용할 수 있다는 제약이 있다.
중위 함수는 코드를 간결하고 읽기 쉽게 만들어주는 코틀린의 기능 중 하나로, 특히 연산자처럼 자연스러운 표현으로 코드를 작성할 수 있게 해준다. 그러나 매개변수가 하나인 간단한 함수에 주로 사용된다는 점과 복잡한 로직에는 적합하지 않다는 점도 함께 고려해야 한다. 코틀린의 중위 함수는 간단한 연산이나 조건 처리를 자연스럽고 쉽게 작성할 수 있는 도구로, 앞으로 개발 과정에서 매우 유용할 것이라고 기대된다😆
'Kotlin' 카테고리의 다른 글
[TIL]20241025 오버로딩 & 오버라이딩 (1) | 2024.10.25 |
---|---|
[TIL]20241024 Type-Safe Builder (0) | 2024.10.24 |
[TIL]20241022 단일 표현식 함수(Single-Expression Function) (2) | 2024.10.22 |
[TIL]20241021 문자열 자르기&합치기 (6) | 2024.10.21 |
[TIL]20241020 Type Alias (1) | 2024.10.20 |