KOTLIN · 함수
지역 함수 (Local Functions)
함수 내부에 함수를 정의하여 로직을 캡슐화합니다. 외부 함수의 변수에 접근할 수 있어 파라미터 전달이 줄어듭니다.
함수중급local-functionencapsulationclosure
핵심 설명
함수 내부에 함수를 정의하여 로직을 캡슐화합니다. 외부 함수의 변수에 접근할 수 있어 파라미터 전달이 줄어듭니다.
Kotlin code
fun validateUser(name: String, email: String, age: Int) {
// 지역 함수: 외부 파라미터에 직접 접근
fun validateField(value: String, field: String) {
if (value.isBlank())
throw IllegalArgumentException("$field 은(는) 필수입니다")
}
fun validateAge() {
if (age !in 1..150)
throw IllegalArgumentException("나이($age)가 유효하지 않습니다")
}
validateField(name, "이름")
validateField(email, "이메일")
validateAge()
println("검증 통과: $name, $email, $age")
}
fun main() {
validateUser("김철수", "kim@test.com", 25)
// validateUser("", "test@test.com", 25) // 예외!
}학습 팁
지역 함수는 유틸리티 함수로 추출하기엔 특정 컨텍스트에 밀접하고, 반복되는 검증 로직을 정리할 때 유용합니다.
주의할 점
지역 함수를 과도하게 중첩하면 가독성이 떨어집니다. 2단계 이상 중첩이 필요하면 별도 함수로 추출하는 것이 낫습니다.
자주 묻는 질문
지역 함수 (Local Functions)란 무엇인가요?
함수 내부에 함수를 정의하여 로직을 캡슐화합니다. 외부 함수의 변수에 접근할 수 있어 파라미터 전달이 줄어듭니다.
지역 함수 (Local Functions) 학습 시 주의할 점은 무엇인가요?
지역 함수를 과도하게 중첩하면 가독성이 떨어집니다. 2단계 이상 중첩이 필요하면 별도 함수로 추출하는 것이 낫습니다.
Continue Learning
Kotlin 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.