← 아카이브로 돌아가기

Development · Swift

Swift의 비교·논리·비트 연산자

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

Velog 원문 보기 ↗

Development 아카이브 표지

연산자는 값을 비교하거나 여러 조건을 조합해 프로그램의 판단 기준을 만든다. 비교와 논리 연산의 결과는 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

일반적인 분기에는 비교·논리 연산자를 사용하고 비트 단위 조합이 실제로 필요할 때만 비트 연산을 선택한다.

← 아카이브로 돌아가기