Swift의 비교·논리·비트 연산자
비교 연산으로 Bool 값을 만들고 논리 연산으로 조건을 조합하는 방법, 비트 연산과 OptionSet이 필요한 경우를 예제로 정리합니다.

연산자는 값을 비교하거나 여러 조건을 조합해 프로그램의 판단 기준을 만든다. 비교와 논리 연산의 결과는 Bool이며 조건문과 반복문의 흐름을 결정한다.
비교와 논리 연산
let first = 1
let second = 2
first == 1 // true
first != second // true
first < second // true
let isSignedIn = true
let hasPermission = false
isSignedIn && hasPermission // false
isSignedIn || hasPermission // true
!isSignedIn // false
&&는 양쪽이 모두 참일 때, ||는 하나 이상이 참일 때 참이다. 두 연산자는 결과가 결정되면 나머지 표현식을 평가하지 않는 단락 평가를 사용한다.
비트 연산과 OptionSet
비트 연산자 &와 |는 정수의 각 비트를 직접 비교한다. 여러 선택 상태를 하나의 값에 담는다면 원시 정수보다 OptionSet으로 의미를 표현하는 편이 안전하다.
struct Genres: OptionSet {
let rawValue: Int
static let pop = Genres(rawValue: 1 << 0)
static let hiphop = Genres(rawValue: 1 << 1)
}
let favorites: Genres = [.pop, .hiphop]
favorites.contains(.pop) // true
일반적인 분기에는 비교·논리 연산자를 사용하고 비트 단위 조합이 실제로 필요할 때만 비트 연산을 선택한다.