메소드라는 단어가 익숙하지는 않았는데 오랜만에 들어본다 ㅋㅋㅋㅋ
걍 쉽게 말하면 함수(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 |