본문 바로가기

개발

Swift 고급 연산자 (Advanced Operators)

728x90

Swift 고급 연산자 (Advanced Operators)

Swift는 기본적인 산술 연산자 외에도 다양한 고급 연산자를 제공합니다. 이러한 연산자들은 조건 검사, 범위 처리, 논리 연산, 비트 연산 등을 보다 간결하고 효율적으로 수행할 수 있도록 돕습니다.

1. 조건부 연산자 (Ternary Operator)

let age = 18

let canVote = age >= 19 ? "투표 가능" : "투표 불가능"

print(canVote) // "투표 가능" 출력

 

2. 범위 연산자 (Range Operators)

let numbers = [1, 2, 3, 4, 5]



for number in 1...3 {

    print(number) // 1, 2, 3 출력

}



for number in numbers[2..<5] {

    print(number) // 3, 4 출력

}

 

3. 논리 연산자 (Logical Operators)

let x = 10

let y = 20



let result = (x > 5) && (y < 30)

print(result) // true 출력



let swiftIsAwesome = true

let objectiveCIsDead = false



let bothAreTrue = swiftIsAwesome && objectiveCIsDead

print(bothAreTrue) // false 출력



let eitherIsTrue = swiftIsAwesome || objectiveCIsDead

print(eitherIsTrue) // true 출력

 

4. 비트 연산자 (Bitwise Operators)

let a: UInt8 = 0b00110101

let b: UInt8 = 0b00110011



let andResult = a & b   // 0b00110001

let orResult = a | b    // 0b00110111

let xorResult = a ^ b   // 0b00000110

let notResult = ~a      // 0b11001010

let leftShiftResult = a << 2 // 0b11010100

let rightShiftResult = a >> 2 // 0b00001101

 

5. 기타 고급 연산자

  • nil coalescing operator (??): 옵셔널 값이 nil인 경우 기본값을 반환합니다.
  • *assignment operators (+=, -=, =, /=): 기존 값에 연산 결과를 더하거나 빼거나 곱하거나 나누고 대입합니다.
  • stride operator (...): 특정 간격으로 값을 순환하는 범위를 생성합니다.
  • type casting operators (as, as?): 값을 다른 타입으로 변환합니다.

6. 참고 자료

 

주의: 고급 연산자는 강력한 기능이지만, 잘못 사용하면 예상치 못한 결과를 초래할 있습니다. 따라서, 고급 연산자를 사용하기 전에 기본 개념을 이해하고, 적절하게 사용하는 것이 중요합니다. 또한, 복잡한 연산자 조합은 오히려 코드 가독성을 저하시킬 있으므로 주의해서 사용해야 합니다.