함수
📌함수를 선언하는 방법
기본
fun 함수명(인수명1: 자료형, 인수명2: 자료형 ...): 반환형{
함수 내용
return
}
fun plus(first: Int, second: Int): Int{
var result = first + second
return result
}
- 함수를 호출할 때 매개변수 순서를 바꿔서 출력하고싶다면, 매개변수를 명시적으로 전달하는 방법도 있다.
plus(second = 3, first = 4)
반환값이 없는 함수 선언
fun 함수명(인수들): Unit{
함수 내용
}
디폴트값을 갖는 함수 선언
fun 함수명(인수명1: 자료형, 인수명2: 자료형 = 디폴트값 ...){
함수 내용
}
fun plusFive(first: Int, second: Int = 5): Int{
var result = first + second
return result
}
fun main(array: Array<String>){
println(plusFive(3))
}
- 디폴트값이 있는 매개변수가 디폴트값이 없는 매개변수보다 앞에 있으면, 매개변수를 명시적으로 전달해서 함수를 호출해야한다.
- 예시
fun plusFive(first: Int = 5, second: Int): Int{
var result = first + second
return result
}
fun main(){
println(plusFive(second = 3))
}
가변인자를 받는 함수 선언
fun 함수명(vararg 인수명: 자료형){
함수 내용
}
fun plusMany(vararg numbers: Int): Int{
var result = 0
for (number in numbers){
result = result + number
}
return result
}
fun main(array: Array<String>){
println(plusMany(1, 2, 3))
println(plusMany(1, 2))
}
간단하게 함수 선언
- 간단한 연산을 수행하는 것과 같은 함수들은 간단하게 선언할 수 있다
- 코드가 줄어드는 장점이 있으나 기본형으로 코드를 작성하는 것을 추천!
- 예시
fun plusShort(first: Int, second: Int) = first + second
내부 함수
- 함수 내에 함수 선언이 가능하다.
- 문법적인 부가 비용을 줄이고 깔끔하게 코드를 조직할 수 있다.
코드의 중복도 줄여준다.
- 예시
fun showMyPlus(first: Int, second:Int): Int{
fun plus(first: Int, second:Int): Int{
return first + second
}
return plus(first,second)
}