[kotlin] 코틀린 inline 클래스의 정의와 사용법
코틀린에서 inline class 는 값을 갖지 않는 특별한 형태의 클래스입니다. 이 클래스는 래퍼 클래스 또는 값 객체로 사용될 수 있으며, 런타임에서 힙 할당 없이 스택에 인라인됩니다.
inline class 정의하기
inline class Email(val value: String)
inline
키워드를 사용하여 클래스를 정의합니다. 위 코드에서 Email
클래스는 문자열 값을 갖는 간단한 inline 클래스입니다.
inline class 사용하기
fun validateEmail(email: Email): Boolean {
val regex = Regex("^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}\$")
return regex.matches(email.value)
}
val userEmail = Email("example@email.com")
val isValid = validateEmail(userEmail)
위의 코드에서 Email
클래스를 사용하여 이메일을 유효성 검사하는 예제입니다. value
속성을 통해 실제 값에 접근할 수 있습니다.
inline class 주의사항
- inline 클래스는 반드시 하나의 프로퍼티를 가져야 합니다.
- inline 클래스는 다음과 같은 제약 사항이 있습니다.
init
블록을 가질 수 없습니다.- 상속할 수 없습니다.
- 본문을 가질 수 없는 함수만을 가질 수 있습니다.
이와 같이 코틀린의 inline 클래스를 사용하면, 특별한 형태의 데이터를 캡슐화하고 메모리를 절약할 수 있습니다.
참고로 코틀린 공식 문서를 통해 더 많은 정보를 얻을 수 있습니다.
이상으로 코틀린 inline 클래스의 정의와 사용법에 대해 알아보았습니다.