본문 바로가기
Programming/Kotlin

[Kotlin 뿌시기](4) 메소드

by 드가보자 2023. 12. 27.

메소드라는 단어가 익숙하지는 않았는데 오랜만에 들어본다 ㅋㅋㅋㅋ

걍 쉽게 말하면 함수(Function)이다.. 중,고등학교 수학 시간에 진짜 많이 들었봤을 단어

고등학생 때 수학을 진짜 많이 좋아했어서,,, 함수라는 단어를 들으니까 설레네요

 

한 번 알아봅시다!..

 


c++에서 사용하는 함수 

[반환형] 함수명(함수 인자){
	~~~ 연산 
	Return 반환 값
}

 

이런 형식인데 크게 다르지가 않다. 

fun 함수명(변수명:타입, 변수명:타입, ...):반환형{
	~~blah blah 연산~~
    ~~blah blah 연산~~
    return 반환값
}

이런식이다. 

 

바로 코드 보면서 이해하는게 좀 더 나을거같다~

 

fun plusNumbers(FirstNum: Int, SecondNum: Int): Int {
    val result: Int = FirstNum + SecondNum
    return result
}

여기서 제일 앞에 붙은 fun은 Function의 약자입니당~

Int형 변수 FirstNum, SecondNum을 더해준 result값을 Return 하는 함수인데,

 

해당 함수에서 인자들의 Default 값을 지정해줄 수 있다.

fun plusNumbersWithDefault(firstNum: Int, secondNum: Int = 10): Int {
    return firstNum + secondNum
}

val result2: Int = plusNumbersWithDefault(5)
println(result2)
val result3: Int = plusNumbersWithDefault(firstNum = 10, secondNum = 20)
println(result3)

 

여기서 SecondNum의 Default값을 10으로 해준다는 거고, 

result2 부분을 보면, 여기서는 firstNum에 5를 전달하고, secondNum은 명시적으로 제공되지 않았으므로 기본값 10이 사용되는 것이다. 함수 내에서는 두 매개변수를 더하여 결과를 반환하니까, result는 15가 된다.

 

c++에서 void 함수 처럼, 아무 값도 Return 안하고 싶을 때에는 함수 반환형 부분에 Unit을 적어주거나, 적어주지 않으면 된다. 적어주면 다른 사람이 코드를 볼 때 "아 ~ 얘 Return 값 없는 함수구나" 라고 이해를 할 수 있고

 

fun plustNumberWithNoReturn(first_num: Int, second_num: Int): Unit {
    val result: Int = first_num + second_num
    println(result)
}

fun plustNumberWithNoReturn2(first_num: Int, second_num: Int) {
    val result: Int = first_num + second_num
    println(result)
}

fun plustNumberWithNoReturn3(first_num: Int, second_num: Int) {
    val result: Int = first_num + second_num
    println(result)
    return
}

 

위 3개의 함수 모두 동일하다. 3번째 함수는 return이 있어도 뒤에 반환해주는 값이 없기 때문에 문제되지 않는다.

 

그 다음 함수를 Oneline에 짧게 작성하고 싶을 때는 , 반환형 부분을 pass하고 바로 Retrun하고 싶은 값을 대입해줘도 된다. 근데 다만 함수 내용이 간단해야지만 사용할 수 있을 것 같다 ^_^..

fun shortPlusNumbers(firstNum: Int, secondNum: Int) = firstNum + secondNum
val result10: Int = shortPlusNumbers(firstNum = 10, secondNum = 100)
println(result10)

 

코틀린에서는 가변 인자 (variable arguments) 를 지원하는 특별한 문법을 제공하는데, 이를 사용하면은 임의의 개수의 인자를 받을 수 있다. 

 

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

fun main() {
    printNumbers(1, 2, 3, 4, 5)
}

 

for문은 나중에 다루겠지만, 받은 인자들을 순차적으로 순회하는 역할을 한다. 

printNumbers(1,2,3,4,5) 를 하면 numbers에 1,2,3,4,5가 되고 

number -> 1 -> 2 -> 3 -> 4 -> 5 순서로 바뀌면서 for 문 안의 code Line을 수행하게 된다.

그럼 출력은 1, 2, 3, 4, 5가 될 것이다. 

fun plusMultipleNumbers(vararg numbers: Int): Int {
    var result: Int = 0
    for (number in numbers) {
        result+=number
    }
    println(result)
    return result
}
plusMultipleNumbers(1, 2, 3, 4, 5)

 

다음과 같이 함수를 Design 하면 가변 인자들을 모두 더한 Total Sum을 확인할 수 있다. 

 

감사합니다 : )

 

'Programming > Kotlin' 카테고리의 다른 글

[Kotlin 뿌시기](5) 흐름제어  (0) 2023.12.27
[Kotlin 뿌시기](3) 연산자  (1) 2023.12.26
[Kotlin 뿌시기](2) Null  (0) 2023.12.24
[Kotlin 뿌시기] (1) 변수와 자료형  (2) 2023.12.23