ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • kotlin operator fun invoke
    Kotlin/Kotlin 2024. 2. 19. 00:01
    728x90

    개요

    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
    }

     

    댓글

Designed by Tistory.