코틀린 함수 완벽 정리
코틀린의 함수는 코드 재사용성을 높이고 프로그램을 구조적으로 관리할 수 있게 해준다.fun 키워드를 사용하며, 매개변수와 반환값을 명확하게 정의할 수 있다.
함수 기본 구조
예시
반환값이 없는 함수 (Unit)
반환값이 없을 경우 Unit 타입을 사용하며, 생략도 가능하다.
아래처럼 간단히 쓸 수도 있다.
표현식 본문 함수 (한 줄짜리 함수)
한 줄로 결과를 반환하는 함수는 중괄호 {} 대신 =를 사용한다.
반환타입 추론
위 코드처럼 반환타입을 생략하면 코틀린이 자동으로 추론한다.a + b가 Int이므로 반환타입은 Int로 인식된다.
매개변수 기본값
함수의 매개변수에 기본값을 지정할 수 있다.
명명된 인자 (Named Argument)
호출 시 인자의 이름을 명시하면 순서를 바꾸어도 된다.
반환 타입이 여러 개일 때
코틀린은 여러 값을 한 번에 반환할 수 없지만,Pair, Triple, 혹은 data class를 사용해 묶어서 반환할 수 있다.
가변 인자 함수 (vararg)
vararg 키워드를 사용하면 매개변수 개수가 가변적인 함수를 만들 수 있다.
지역 함수 (Local Function)
함수 내부에 또 다른 함수를 정의할 수 있다.
내부 로직을 분리하고 코드 가독성을 높이는 데 유용하다.
확장 함수 (Extension Function)
기존 클래스에 새로운 기능을 추가할 때 사용한다.
고차 함수 (Higher-Order Function)
함수를 인자로 받거나 반환값으로 반환할 수 있다.
람다 표현식 (Lambda Expression)
람다는 익명 함수를 간결하게 표현하는 방식이다.
인라인 함수 (Inline Function)
자주 호출되는 고차 함수를 최적화하기 위해 inline 키워드를 사용할 수 있다.
함수 요약 비교표
| 형태 | 키워드 | 특징 |
|---|---|---|
| 일반 함수 | fun |
기본적인 함수 정의 |
| 표현식 함수 | = |
한 줄 반환 시 사용 |
| 가변 인자 | vararg |
인자 개수 제한 없음 |
| 확장 함수 | fun Type.name() |
기존 클래스 확장 |
| 고차 함수 | (Int) -> Int |
함수를 인자로 받음 |
| 인라인 함수 | inline |
성능 최적화 |

답글 남기기