Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- kotlin
- 코틀린
- hilt
- View
- CoordinatorLayout
- activity
- 알고리즘
- onLayout
- Coroutine
- AppBarLayout
- DataBinding
- 안드로이드
- 백준
- room
- LiveData
- lifecycle
- sqlite
- recyclerview
- CollapsingToolbarLayout
- Algorithm
- BOJ
- ViewModel
- 알림
- Android
- notification
- onMeasure
- Behavior
- CustomView
- HTTP
- Navigation
Archives
- Today
- Total
개발일지
Kotlin in A..Z (7) - 함수 본문
- 순수 함수의 정의
같은 인자에 대하여 항상 같은 결과를 '반환하면 부작용이 없는 함수'라고 부른다.
부작용이 없는 함수가 함수 외부의 어떤 상태도 변화시키지 않으면 '순수 함수'라고 부른다.
- 일급 객체의 특징
일급 객체는 함수의 인자로 전달할 수 있다.
일급 객체는 함수의 반환값에 사용할 수 있다.
일급 객체는 변수에 담을 수 있다.
- 고차 함수의 정의
다른 함수를 인자로 받을수 있는 함수
다른 함수를 리턴값으로 사용할 수 있는 함수
- 함수를 쓰는 이유
재사용성을 높여 코드의 중복을 없애기 위해
함수를 이용하여 코드의 가독성을 높일 수 있다.
모듈성을 높여 유지보수를 쉽게 할 수 있다.
- 함수 정의하기
fun Name(Parm1, Parm2): ReturnType {
Body
}
fun키워드 이름(변수1, 변수2): 반환형 {
함수 내용
}
위와 같은 형식이다.
코드
fun sum(x:Int, y:Int): Int {
return x + y
}
fun main() {
println(sum(2, 3))
}
결과
5
- 간단한 함수 정의
함수의 내용이 한줄이면 {}와 return을 생략하고 =연산자로 표현할 수 있다.
코드
fun sum(x: Int, y:Int): Int = x + y
fun main() {
println(sum(2, 3))
}
결과
5
함수의 반환형을 유추할 수 있으면 반환형을 생략할 수 있다.
코드
fun sum(x: Int, y:Int) = x + y
fun main() {
println(sum(2, 3))
}
결과
5
-함수의 반환형
함수의 반환형이 없으면 생략할 수 있다.
코드
fun printSum(x:Int, y:Int) {
println(x + y)
}
fun main() {
printSum(2, 3)
}
결과
5
주의할 점
함수의 반환형을 명시하지 않거나 return문을 생략하면 반환하는 값이 없는거 같지만 실제로는 Unit이라는 특별한 객체를 반환한다.
- 디폴트 매개변수
Java에는 디폴트 매개변수가 없지만 Kotlin에는 있다.
코드
fun sum(x:Int = 0, y:Int = 0) = x + y
fun main() {
println(sum()) // x와 y에 0이 대입
println(sum(5)) // x에 0, y에 0이 대입
println(sum(5, 10)) // x에 5, y에 10이 대입
}
결과
0
5
15
- 매개변수 이름과 함께 호출하기
매개변수가 많이 있으면 어떤 인자를 어떤 매개변수에 전달하는지 헷갈리는 경우가 있다. 이를 방지하기 위해 매개변수의 이름과 함께 호출할 수 있다.
코드
fun cal(x:Int, y:Int, z:Int) = x + y*y + z*z*z
fun main() {
println(cal(x = 1, y = 2, z = 3)) // x에 1, y에 2, z에 3 이라고 명시적으로 적어준다.
}
결과
32
- 가변인자 사용하기
매개변수 왼쪽에 vararg 키워드를 적으면 된다.
변수의 갯 수가 정해지지 않을 경우 가변인자를 사용한다.
코드
fun sum(vararg args: Int): Int {
var result: Int = 0
for(value in args) {
result += value
}
return result
}
fun main() {
println(sum(1, 2, 3, 4, 5))
}
결과
15
- 중간에 종료하기
함수 중간에 return문을 사용하여 함수를 종료할 수 있다.
코드
fun test() {
println("test1")
return
println("test2")
}
fun main() {
test()
}
결과
test1
'Kotlin (코틀린)' 카테고리의 다른 글
Kotlin in A..Z (9) - 다양한 함수 (0) | 2020.07.14 |
---|---|
Kotlin in A..Z (8) - 람다 (0) | 2020.07.11 |
Kotlin in A..Z (6) - 연산자 (0) | 2020.07.10 |
Kotlin in A..Z (5) - 자료형 비교, 검사, 변환 (0) | 2020.07.10 |
Kotlin in A..Z (4) - null (0) | 2020.07.10 |
Comments