2.2.7 불 타입과 논리 연산
코틀린은 참(true)이나 거짓(false) 중 하나로 판명되는 불(Boolean) 타입과 논리 연산을 제공한다.
val hasErrors = false; val testPassed = true;
자바와 마찬가지로 코틀린 Boolean도 수 타입과는 다른 타입이며, 암시적으로든 toInt() 등의 명시적인 내장 연산을 써서든 수로 변환할 수 없다(반대로 수를 Boolean 타입으로 변환할 수도 없다). 개발자는 비교 연산자나 조건식(if나 when 등을 뜻하며, 나중에 설명한다)을 사용해 불이 아닌 값에서 불 값을 만들어야 한다.
불이 지원하는 연산은 다음과 같다.
• !: 논리 부정
• or, and, xor: 즉시 계산(eager) 방식의 논리합, 논리곱, 논리배타합
• ||, &&: 지연 계산(lazy) 방식의 논리합, 논리곱
지연 계산 연산자(||, &&)는 자바의 동일 연산자와 똑같은 의미를 제공한다. ||의 왼쪽 피연산자가 참이면 오른쪽 피연산자를 계산하지 않는다. &&의 왼쪽 피연산자가 거짓이면 오른쪽 피연산자를 계산하지 않는다. 이런 방식의 계산은 왼쪽 피연산자에 부수 효과가 포함된 경우 유용할 수 있다.
자바 vs. 코틀린 자바와 달리 코틀린은 &와 | 연산자를 제공하지 않는다. and와 or가 각각 &와 |를 대신한다.