더북(TheBook)

2.2.7 불 타입과 논리 연산

코틀린은 참(true)이나 거짓(false) 중 하나로 판명되는 불(Boolean) 타입과 논리 연산을 제공한다.

val hasErrors = false;
val testPassed = true;

자바와 마찬가지로 코틀린 Boolean도 수 타입과는 다른 타입이며, 암시적으로든 toInt() 등의 명시적인 내장 연산을 써서든 수로 변환할 수 없다(반대로 수를 Boolean 타입으로 변환할 수도 없다). 개발자는 비교 연산자나 조건식(ifwhen 등을 뜻하며, 나중에 설명한다)을 사용해 불이 아닌 값에서 불 값을 만들어야 한다.

불이 지원하는 연산은 다음과 같다.

!: 논리 부정

or, and, xor: 즉시 계산(eager) 방식의 논리합, 논리곱, 논리배타합

||, &&: 지연 계산(lazy) 방식의 논리합, 논리곱

지연 계산 연산자(||, &&)는 자바의 동일 연산자와 똑같은 의미를 제공한다. ||의 왼쪽 피연산자가 참이면 오른쪽 피연산자를 계산하지 않는다. &&의 왼쪽 피연산자가 거짓이면 오른쪽 피연산자를 계산하지 않는다. 이런 방식의 계산은 왼쪽 피연산자에 부수 효과가 포함된 경우 유용할 수 있다.

자바 vs. 코틀린 자바와 달리 코틀린은 &| 연산자를 제공하지 않는다. andor가 각각 &|를 대신한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.