-
kotlin operator fun invokeKotlin/Kotlin 2024. 2. 19. 00:01728x90
개요
kotlin의 operator 중 invoke라는 연산자를 알게 되어 알아보고자 합니다.
invoke 연산자란?
object MyFunction{ operator fun invoke(str: String): String{ return str.lowercase() //소문자로 바꿔줌 } }
operator fun invoke를 활용하여 invoke 연산자를 정의할 수 있습니다.
MyFunction Object는 문자를 받아 소문자로 변환해주는 역할을 수행합니다.
다음과 같이 호출해볼 수 있습니다.
val upperCaseString = "HELLO WORLD" println(MyFunction.invoke(upperCaseString)) //hello world
invoke의 특성상 메서드 이름을 생략하고 바로 호출할 수 있습니다.
println(MyFunction(upperCaseString)) //hello world
invoke는 번역했을 때 부르다 하는 뜻을 가지며 함수를 이름 없이 사용할 수 있습니다.
invoke 언제 사용하면 좋을까?
invoke는 클래스를 함수처럼 호출할 수 있게 만들어주는 역할을 수행합니다.
다양한 시나리오에서 코드의 가독성과 유용성을 향상시킬 수 있습니다.
add 메서드를 활용한 계산기
class Calculator { fun add(x: Int, y: Int): Int { return x + y } } fun main() { val adder = Calculator() val result = adder.add(5, 3) // Calls the add method println(result) // Output: 8 }
invoke 메서드를 활용한 계산기
class Calculator { operator fun invoke(x: Int, y: Int): Int { return x + y } } fun main() { val adder = Calculator() val result = adder(5, 3) // Calls invoke function println(result) // Output: 8 }
728x90'Kotlin > Kotlin' 카테고리의 다른 글
kotlin delegated properties (0) 2024.03.01 Kotlin 제네릭에 대해 알아보기 (1) 2024.02.29 Kotlin Synchonized와 MultiThread (0) 2023.11.22 Kotlin과 Java의 컴파일 순서 (0) 2023.11.11 [Kotlin] 상태패턴으로 배송상태를 변경해보자 (0) 2023.08.29