티스토리 뷰
코틀린 내에서 좀 더 자주 쓰이고, 심화된 함수를 살펴보도록 합시다.
1. 디폴트 값을 갖는 함수
여기서 디폴트 값이란, 인수에 전달되는 인자값이 없는 경우에 기본으로 설정된 값을 사용한다는 의미입니다. 기본값으로 보시면 됩니다.
아래의 예시를 보면 다음과 같습니다.
fun plusDefault(first: Int, second: Int = 5): Int {
val result: Int = first + second
return result
}
fun main(array: Array<String>) {
//디폴트 값을 갖는 함수 호출하기
val result = plusDefault(30, 50)
println(result)
val result1 = plusDefault(30)
println(result1)
}
plusDefault 함수에서 첫 인수의 인자값은 설정되어 있지 않으나, 두 번째 인수의 인자값은 5로 기본 설정되어 있습니다. 만약 두 번째 인자값이 없다면, 기본적으로 5를 사용하게 됩니다.
따라서 result의 결과는 80이 되고, result1의 결과는 35가 됩니다.
2. 반환값이 없는 함수
코틀린에서 반환값이 없는 함수는 Unit 함수라고 부릅니다. 다른 언어에서는 Void 함수라고 부르는데, 코틀린에서는 반환값이 없는 경우 Unit 타입을 사용합니다.
Unit 타입은 생략이 가능하며, 명시하게 될 경우 색상이 회색으로 표시되는 차이가 있습니다.
다음의 예시를 살펴봅니다.
fun printVoid1(first: Int, second: Int): Unit {
val result: Int = first + second
println(result)
}
fun printVoid2(first: Int, second: Int) {
val result: Int = first + second
println(result)
}
fun main(array: Array<String>) {
//반환값이 없는 함수
val result = printVoid1(10, 40)
println(result)
val result1 = printVoid2(10, 40)
println(result1)
}
예시에서 printVoid1과 2의 차이는 Unit이 있고, 없고의 차이입니다. Unit은 말그대로 반환값이 없다는 것을 의미하므로 직접 명시해주거나 생략을 해도 무방합니다. 실제 메인 함수에서 사용하면 결과는 동일합니다.
Unit 함수를 이해했으니, 메인 함수도 분석이 가능합니다.
fun main(array: Array<String>) {
함수 내용
}
메인 함수의 경우, array라는 인자는 타입이 Array<String>이며, 반환값은 없습니다. 사실 Unit이 생략되어 있는 것입니다. :)
3. 축약형 함수
코틀린에서 함수를 축약형으로 표현 가능합니다.
아래의 예시를 살펴봅니다.
fun plusShort(first: Int, second: Int) = first + second
fun main(array: Array<String>) {
val result = plusShort(60, 70)
println(result)
}
예시와 같이, 리턴 타입을 명시하지 않고 바로 = 기호를 이용해 함수 내용을 써주면 됩니다.
4. 인자가 여러 개인 함수. 가변인자 함수.
코틀린에서 여러 개의 인자를 받는 경우, 다음과 같이 함수 선언이 가능합니다.
fun plusMany(vararg numbers: Int){
for (number in numbers) {
println(number)
}
}
fun main(array: Array<String>) {
//여러 인자를 받는 함수
val result = plusMany(1,2,3,4,5)
println(result)
}
여기서 vararg의 의미는 1~n개의 인자값을 받을 수 있다는 의미입니다. 원하는 만큼 개수의 인자값을 넣을 수 있습니다.
5. 내부 함수
내부 함수는 말그대로 함수 내에 함수가 또 있는 것을 의미합니다.
아래의 예시를 바로 살펴봅니다.
fun showPlus(first: Int, second: Int): Int {
println(first)
println(second)
fun plus(first: Int, second: Int): Int {
return first + second
}
return plus(first, second)
}
fun main(array: Array<String>) {
val result = showPlus(4, 5)
println(result)
}
showPlus 함수 안에 plus 함수가 있는 것을 볼 수 있습니다. showPlus 함수는 plus 함수를 리턴하게 됩니다.
따라서, 메인 함수의 결과 값은 당연히 9가 됩니다.
'Kotlin' 카테고리의 다른 글
코틀린 제어문 Control Flows (0) | 2021.07.05 |
---|---|
코틀린 연산자 Kotlin Operators (0) | 2021.07.05 |
코틀린에서의 함수/메소드 Kotlin Function/Method (0) | 2021.07.05 |
코틀린에서 Null 값의 의미 (0) | 2021.07.05 |
코틀린 자료형의 종류 Kotlin Types (0) | 2021.07.05 |
- Total
- Today
- Yesterday
- 2007년 사건사고
- ToDo List 앱 만들기
- 상대적 레이아웃
- 안드로이드 어댑터
- addView
- RecyclerView
- view binding
- tabLayout
- bmi 계산기 만들기
- 인텐트
- 메소드 오버라이딩
- 대한민국 미제사건
- 안드로이드 스튜디오 에러
- 뷰 바인딩
- findViewById
- 선형 레이아웃
- 안드로이드 프로젝트
- 안드로이드 앱 만들기
- 리스트뷰
- 탭레이아웃
- 2019년 사건사고
- 애드뷰
- android adapter
- 2021년 사건사고
- 리사이클러뷰
- lazy init
- 자바스크립트 배열
- notifyDataSetChanged
- Bmi Calculator
- 미제사건
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |