코틀린에서 메소드를 선언하는 방법을 알아보기 전에 메소드가 무엇인지부터 알아보자.
메소드(Method)란 무엇인가.
메소드는 어떠한 기능을 수행하는 코드 블록이다.
쉽게 예를 들어보자. 우리는 파스타를 만들려고 한다.
파스타를 만들기 위해서는 파스타 면과 소스가 필요하고, 재료가 준비되면 파스타 면을 삶고, 소스와 버무리는 과정을 거친 후에야 파스타가 완성된다.
여기서 파스타면과 소스는 매개변수(파라미터 : Parameter)에 빗댈 수 있으며, 파스타를 조리하는 과정은 메소드의 기능, 그리고 완성된 파스타는 반환값에 빗댈 수 있다.
즉, 어떠한 재료를 넣어주냐, 완성된 파스타가 무엇이느냐에 따라 메소드가 달라진다.
메소드 선언
fun 함수명(변수명 : 타입, 변수명 : 타입, ... ) : 반환 자료형 {
함수내용
함수내용
...
return 반환값
}
코틀린에서는 메소드를 선언할 때 fun 키워드를 사용한다.
fun PlusNumber(firstNumber : Int, secondNumber : Int) : Int {
val result = firstNumber + secondNumber
return result
}
fun main() {
val sum = PlusNumber(10, 20)
println(sum)
}
fun PlusNumber(firstNumber : Int, secondNumber : Int) : Int {
val result = firstNumber + secondNumber
return result
}
fun main() {
val sum = PlusNumber(firstNumber = 10, secondNumber = 20)
println(sum)
}
이렇게 메소드를 호출할 때, '매개변수 명 = 매개변수 값' 으로 작성해도 좋다.
명시적으로 작성하면 어느 매개변수에 어떤 값을 넘긴다라고 이해하기 쉽다.
- 반환값이 없는 함수
fun 함수명(변수명 : 타입 , 변수명 : 타입, ... ) (: Unit) {
함수내용
함수내용
...
}
반환값이 없는 경우에는 Unit을 사용하거나 반환 자료형을 생략해도 무방하다.
자바에서는 반환값이 없을 경우, void를 선언한다. 이 void와 같은 역할을 한다고 보면 된다.
fun PlusNumber(firstNumber : Int, secondNumber : Int) {
val result = firstNumber + secondNumber
println(result)
}
fun main() {
PlusNumber(10, 20)
}
- 기본값이 있는 함수
fun 함수명(변수명 : 타입 = 기본값, 변수명 : 타입, ... ) : 반환형 {
함수내용
함수내용
...
return 반환값
}
메소드를 선언할 때 변수명과 함께 기본값을 정해줄 수도 있다.
기본값을 설정하면 메소드를 호출할 때, 값을 넘기지 않아도 된다. 값이 없어도 기본값이 있기 때문에 계산할 수 있다.
fun PlusNumber(firstNumber : Int = 20, secondNumber : Int = 30) : Int {
val result = firstNumber + secondNumber
return result
}
fun main() {
val sum = PlusNumber(firstNumber = 10)
println(sum)
}
[출력결과]
40
위 코드를 보면 firstNumber 만 값을 넘겨주었다. 하지만, secondNumber는 30이라는 기본값이 있기 때문에 40이 출력된다.
만일, 기본값이 설정되어 있지만 매개변수도 넘긴다면(firstNumber) 전달받은 매개변수의 값으로 계산한다.
- 간단하게 선언하는 방법
fun 함수명(변수명:타입, ...) = 함수내용
위와 같은 형식으로 메소드를 간단하게 선언할 수도 있다.
fun PlusNumber(firstNumber : Int = 20, secondNumber : Int = 30) = firstNumber + secondNumber
fun main() {
val sum = PlusNumber(firstNumber = 10)
println(sum)
}
- 가변인자를 갖는 함수
fun 함수명(vararg 변수명:타입) : 반환형 {
함수내용
return 반환값
}
이 함수는 전달되는 파라미터의 개수가 일정하지 않은 경우에 사용한다.
위와 같은 형식으로 vararg 키워드를 사용하여 매개변수로 전달된 인수의 개수를 동적으로 처리할 수 있다.
vararg는 variable argument로 가변인자를 표현하는 키워드이다.
가변인자를 사용하는 경우, 함수 호출 시 전달되는 인수의 개수에 상관없이 배열 형태로 전달된다.
이러한 형식을 갖는 함수는 코드의 가독성과 유지보수성을 높일 수 있다.
fun sum(vararg nums: Int): Int {
var result = 0
for (num in nums) {
result += num
}
return result
}
fun main() {
val result = sum(1, 2, 3, 4, 5)
println(result)
}
[출력결과]
15
'Kotlin' 카테고리의 다른 글
[Kotlin] 코틀린 반복문 for, while, do while 반복문 활용 (0) | 2023.05.08 |
---|---|
[Kotlin] 코틀린 조건문 if-else 와 when 사용법 파헤치기 (0) | 2023.05.03 |
[Kotlin] 코틀린 연산자 (Operators)와 우선순위 (2) | 2023.04.08 |
[Kotlin] 코틀린 NULL (널) (0) | 2023.04.07 |
[Kotlin] 코틀린 기본 자료형(Primitive type)과 참조 자료형(Reference type) (2) | 2023.04.05 |