5. Function Syntax and Usage
함수 문법과 사용
1) 함수 선언 기본 문법
fun키워드 사용이름: 타입 형태로 파라미터 지정
반환 타입은
: Type(Unit일 경우 생략 가능)
fun max(a: Int, b: Int): Int {
return if (a > b) a else b
}👉 한 줄 함수는 더 간결하게:
fun max(a: Int, b: Int) = if (a > b) a else b2) 반환 타입 생략 규칙
식(Expression) 본문 (
=) → 반환 타입 추론 가능블록 본문 (
{ }) → Unit 아니면 반드시 타입 명시
fun add(a: Int, b: Int) = a + b // Int 추론됨
fun log(msg: String) { println(msg) } // Unit, 타입 생략3) 기본값 파라미터 (Default parameter)
자바: 오버로딩으로 처리해야 함
코틀린: 기본값 지정 가능
4) 이름 붙인 인자 (Named arguments)
호출 시 파라미터 이름 지정 가능
순서를 자유롭게 변경 가능
빌더 패턴을 대체할 수 있음
👉 단, 자바 메소드 호출 시에는 named argument 불가
5) 가변 인자 (Vararg)
Java의
String... args와 동일vararg키워드 사용
👉 배열 전달 시 *array로 스프레드 필요.
6) 최상위 함수와 파일 구조
코틀린은 **클래스 외부(파일 최상단)**에도 함수 정의 가능
자바에서는 반드시 클래스 안에 메소드 정의해야 함
코틀린의 최상위 함수는 JVM 바이트코드에서 static 메소드로 컴파일됨
👉 자바에서 호출 시: UtilsKt.now()
7) 실무 활용 패턴
A. API 유틸 함수
→ 확장 함수와 조합해 도메인에 맞는 DSL처럼 사용.
B. Android UI
→ 자바에서는 유틸 클래스 + static 메소드 필요.
C. Spring Boot + Kotlin
→ 기본값 파라미터로 오버로딩 제거 → 컨트롤러 코드 단순화.
Last updated