반응형
이 글은 Effective Java 를 완독하고, Kotlin 을 상용으로 사용하는 개발자 입장에서
Effective Kotlin 글 중 새로운 내용, remind 할 필요 있는 부분, 핵심 내용 등만 추려 정리한 내용입니다.
#
function 뿐만 아니라 single value 를 가진 class 도 inline 될 수 있다.
class 앞에 value 을 붙여주면 된다. (돼왕 : 책에는 inline 으로 나오지만, inline modifier 는 deprecated 되고 value 로 변경되었다.
value class Name(private val value: String){ /../ }
#
value class 안에 있는 함수들은 static method 로 치환된다.
#
일반적으로 value class 사용시 성능 이슈는 없으며, 쓰임새는 아래와 같다.
- unit (단위) 를 나타내기 위함
- misuse 를 방지하기 위함
Indicate unit of measure
Protect us from type misuse
Inline classes and interfaces
Typealias
#
typealias 는 value class 와 그 쓰임새가 비슷해 보이지미나, type misuse 를 방어해주지 못한다.
typealias Second = Int
typealias Millis = Int
fun getTime(): Millis = 10
fun setupTimer(time: Seconds) { /../ }
fun main(){
val seconds: Seconds = 10
val millis: Millis = seconds // no compile error
setupTimer(setupTime())
}
Summary
끝
반응형
댓글