여섯 번째, 이러한 동작은 효율성을 위해 어떻게 보면 당연한 얘기이고 많은 프로그래밍 언어들이 이렇게 동작합니다만, Kotlin이 이렇게 동작한다는 것을 꼭 기억해 둬야 합니다. 프로그래밍 언어를 이해할 때 정확한 동작 방식을 이해하고 있어야 코딩할 때 정확하고 효율적인 코드를 작성할 수 있습니다.
JVM에서 널 가능한 Boolean은 숫자 타입들과 마찬가지로 래퍼 클래스(java.lang.Boolean) 객체로 박스화(box)됩니다. 타입입니다.
Boolean 타입은 true와 false 둘 중 하나의 진리값을 갖는 객체를 나타냅니다. 널 가능한 형태는 Boolean? 입니다.
JVM에서 Boolean 타입은 전형적으로 8bit를 사용하는 boolean 원시 타입에 저장됩니다.
불리언 타입에 대한 내장된 연산자는 다음과 같습니다.
- || - 논리적 OR
- && - 논리적 AND
- ! - 부정. 논리적 NOT
예시
fun main() {
val myTrue: Boolean = true
val myFalse: Boolean = false
val boolNull: Boolean? = null
println(myTrue || myFalse)
// true
println(myTrue && myFalse)
// false
println(!myTrue)
// false
println(boolNull)
// null
}
|| 와 && 연산자는 다음과 같게 게으르게(lazy) 동작합니다.
- 첫 번째 피연산자가 참(true)인 경우, || 는 두 번째 연산자를 판단(evaluate)하지 않습니다.
- 첫 번째 피연산자가 거짓(true)인 경우, && 두 번째 연산자를 판단하지 않습니다.
이러한 동작은 효율성을 위해 어떻게 보면 당연한 얘기이고 많은 프로그래밍 언어들이 이렇게 동작합니다만, Kotlin이 이렇게 동작한다는 것을 꼭 기억해 둬야 합니다. 프로그래밍 언어를 이해할 때 정확한 동작 방식을 이해하고 있어야 코딩할 때 정확하고 효율적인 코드를 작성할 수 있습니다.
JVM에서 널 가능한 Boolean은 숫자 타입들과 마찬가지로 래퍼 클래스(java.lang.Boolean) 객체로 박스화(box)됩니다.
'Kotlin' 카테고리의 다른 글
공식 문서로 배우는 코틀린 - 8. Basic Types - Strings (0) | 2024.03.02 |
---|---|
공식 문서로 배우는 Kotlin - 7. Basic Types - Characters (0) | 2024.03.02 |
공식 문서로 배우는 Kotlin - 5. Basic Types - Unsigned integer types (0) | 2024.03.01 |
공식 문서로 배우는 Kotlin - 4. Basic Types - Numbers (0) | 2024.03.01 |
공식 문서로 배우는 Kotlin - 3. Basics - Coding conventions (0) | 2024.02.29 |