본문 바로가기
모바일/Kotlin

[Kotlin] 코틀린 메서드(함수)

by drCode 2021. 3. 28.
728x90
반응형

안녕하세요.

이번 포스팅은 Kotlin에서 사용하는 메서드를 알아보겠습니다.

 

함수 : 어떤 input을 넣어주면 어떤 output이 나오는 것

 

※ 함수를 선언하는 방법

fun 함수명(변수명: 타입, 변수명: 타입 ...) : 반환형 {
	함수 내용
	return 반환값
}

 

다음은 더하기 함수를 만들어 보겠습니다.

fun plus(first: Int, second: Int) : Int {
    println(first)
    println(second)
    var result: Int = first + second
    println(result)
    return result
}

 

다음은 디폴트 값을 갖는 함수를 만들어보겠습니다.

fun plusFive(first: Int, second: Int=5) : Int {
    var result : Int = first + second
    return result
}

디폴트 값을 갖게 해주는 경우, 매개변수에  "변수명: 타입" 뒤에 "= n"을 붙여줌으로써 값을 정해줄 수 있습니다.

 

다음은 반환 값이 없는 함수를 만들어보겠습니다.

fun printPlus(first: Int, second: Int) : Unit {
    var result : Int = first + second
    println(result)
}

뒤에 Unit을 안붙여도 되지만 명시적으로 적어 줄 수도 있습니다.

 

fun printPlus2(first: Int, second: Int) {
    var result : Int = first + second
    println(result)
}

이처럼 유닛을 붙이지 않아도 코틀린에서 디폴트로 처리해주는 것 같습니다.

 

 

함수를 간단하게 선언하는 방법도 있습니다.

fun plusShort(first: Int, second: Int) = first + second;

 

가변 인자를 갖는 함수를 선언하는 방법입니다.

fun plusMany(vararg numbers: Int) {
    for(nunmber in numbers) {
    	println(number)
    }
}

 

다음은 위의 함수들을 호출하는 main 함수입니다.

메인은 디폴트로 Unit이 숨어져있다고 생각하면 됩니다.

fun main(array: Array<String>) {
    // 함수를 호출하는 방법
    var result = plus(5, 10)
    println(result)

    // 인수를 명시적으로 전달하는 방법
    var result2 = plus(first = 20, second = 30)
    println(result2)

    var result3 = plus(second = 100, first = 10)
    println(result3)

    // 디폴트 값을 갖는 함수 호출하기
    println()
    var result4 = plusFive(10, 20)
    println(result4)
    var result5 = plusFive(10)
    println(result5)

    println()
    printPlus(10, 20)

    println()
    var result6 = plusShort(50, 50)
    println(result6)

    println()
    plusMany(1,2,3)
    plusMany(100)
}

 

좀 더 나아가서 실습을 해보겠습니다

return에 바로 매개변수들의 계산을 넣을 수 있습니다.

fun plusThree(first :Int, second: Int, third: Int) : Int {
    return first + second + third
}

fun minusThree(first :Int, second: Int, third: Int) = first - second - third

fun multiplyThree(first: Int=1, second: Int=1, third: Int=1): Int {
    return first*second*third
}

 

내부 함수를 이용하여 함수 안에 함수를 넣을 수 있습니다.

// 내부 함수
// 함수 안에 함수가 있다
fun showMyPlus(first: Int, second: Int) : Int {
    println(first)
    println(second)

//    return first + second
    fun plus(first: Int, second: Int) : Int {
        return first + second
    }

    return plus(first, second)
}

 

위의 함수들을 호출하는 main함수 입니다.

fun main(array: Array<String>) {
    val result = plusThree(1,2,3)
    println(result)
    val result2 = minusThree(10,1,2)
    println(result2)
    val result3 = multiplyThree(2,2,2)
    println(result3)
    val result4 = multiplyThree()
    println(result4)

    var result5 = showMyPlus(4,5)
    println(result5)

}
728x90
반응형

댓글