Kotlin
확장 함수 (Extension Function)
기존 클래스를 수정하지 않고 새 함수를 추가합니다. Kotlin 표준 라이브러리의 핵심 메커니즘입니다.
// String 확장 함수
fun String.isValidEmail(): Boolean =
contains("@") && contains(".") && length > 5
// Int 확장 함수
fun Int.isEven() = this % 2 == 0
fun Int.factorial(): Long {
if (this < 0) throw IllegalArgumentException("음수 불가")
return (1..this).fold(1L) { acc, n -> acc * n }
}
// Nullable 수신자
fun String?.orEmpty(): String = this ?: ""
// Generic 확장 함수
fun <T> List<T>.secondOrNull(): T? =
if (size >= 2) this[1] else null
fun main() {
println("dev@kotlin.io".isValidEmail()) // true
println(4.isEven()) // true
println(5.factorial()) // 120
val nullStr: String? = null
println(nullStr.orEmpty()) // ""
println(listOf(1, 2, 3).secondOrNull()) // 2
println(listOf(1).secondOrNull()) // null
}