Develop/Kotlin

[kotlin] 코틀린 함수와 최상위 함수

JunJangE 2020. 8. 27. 17:05

코틀린에서 함수를 선언하는 방법에 대해 알아보도록 하겠습니다.

코틀린에서는 함수를 선언할 때 'fun'이라는 키워드를 사용합니다.

fun function(){

}

위 코드와 같이 코틀린에서는 간단하게 함수를 선언합니다. 

그런데, 함수에 넣을 별도에 파라미터(매개변수)가 있다면 코틀린에서 변수를 사용할 때와 같이 파라미터의 이름을 적고 타입을 지정합니다.

fun function(age: Int){

}

위 코드처럼 반환값이 없는 경우에는 굳이 반환 값의 타입을 적을 필요가 없습니다. 하지만 반환 값이 있는 경우에는 함수의 선언부 끝에 '클론(:)' 기호를 사용하여 표시해야 합니다.

fun function(age: Int): Int{

   return age

}

위 코드를 보게 되면 retrun 값의 타입이 Int이기 때문에 함수의 선언부 끝에 '클론(:)' 기호를 쓰고 Int를 쓰는 것을 볼 수 있습니다. 이때, 코틀린의 함수에서는 return을 생략하고 코드를 구현할 수 있습니다.

 fun function(age: Int): Int = age

위 코드처럼 사용할 수 도 있고 타입 추론으로 리턴 타입도 생략할 수 있습니다.

fun function(age: Int) = age

이렇게 함수 선언하는 방법에 대해 알아봤습니다. 지금부터는 함수를 선언하고 호출하는 방법에 대해서 예제 코드를 통해 알아보도록 하겠습니다.

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        fun function(massage :String) {
        
            Toast.makeText(this@MainActivity,massage,Toast.LENGTH_SHORT).show()
        }
       
       function("함수 호출!")
    }
}

위 코드처럼 function이라는 함수를 만들고 그 함수의 massage라는 String타입의 파라미터를 지정합니다.

함수 안에는 Toast 메시지를 띄울 수 있는 코드를 하나 만들면 간단하게 Toast 메시지를 띄울 수 있는 함수를 선언할 수 있습니다.

다음으로 함수를 호출하기 위해서는 함수 이름인 function을 쓰고 () 안에 함수의 파라미터 값을 쓰면 됩니다.

<결과 화면>

그러면 결과 화면처럼 "함수 호출!"이라는 Toast 메시지가 띄워지는 걸 볼 수 있습니다.


마지막으로 코틀린의 최상위 함수에 대해 간단하게 알아보도록 하겠습니다.

최상위 함수는 '클래스 내부'가 아닌, '클래스 외부'에 있는 함수를 의미합니다.

java언어에서는 모든 함수는 클래스 내부에 있어야 하지만, 코틀린에서는 그럴 필요 없이 사용할 수 있습니다.

한 마디로 A 클래스에서 선언한 함수를 B 클래스에서 호출할 수 있다는 것입니다.

결론적으로 한 곳에서 함수를 선언만 한다면 선언된 함수를 모든 클래스에서 호출할 수 있게 되는 것입니다.