Swift 기본연산자
1. 기본연산자
할당 연산자 (Assignment Opertor)
값을 초기화 시키거나 변경합니다. 튜플을 이용해 한번에 할당할 수 있습니다.
1 | let (x,y) = (1,2) |
C나 Objective-C와 다르게 Swift에서는 할당 연산자가 값을 반환하니 않습니다. 이는 동등 연산 비교를 사용해야 하는 곳에 실수로 할당 연산자를 사용하는 것을 막기 위함입니다.
사칙 연산자(Arthmetic Operators)
C나 Objective-C와 달리 Swift는 사칙 연산의 값이 오버플로우 되는 것을 허용하지 않습니다. 만약 허용하고 싶다면 어버플로우 연산자를 이용해야 합니다.
단항 음수, 양수 연산자
숫자 값은 -
나 +
로 표현되는 단항 연산자를 통해 부호를 결정할 수 있습니다.
1 | let three = 3 |
합성 할당 연산자(Compound Assignment Operaotors)
+=
같이 할당 연산자와 사칙연산 연산자의 조합을 사용 가능합니다.
비교 연산자(Comparison Operators)
기본적으로 다른 언어에서 제공되는 비교 연산자를 모두 지원합니다. 추가적으로 Swift는 객체 비교를 위해 식별자 ===
과 !==
를 제공합니다.
같은 타입의 값을 갖는 두 개의 튜플을 비교할 수 있습니다. 튜플의 비교는 왼쪽에서 오른쪽으로 이루어 지고 한번에 한개의 값만 비교한후 결과를 반환합니다.
1 | (1, "zebra") < (2, "apple") // true |
만약 타입이 달라서 비교할수 없는 경우는 에러가 발생합니다.
1 | ("blue", false) < ("purple", true) // 에러 , Boolen 값은 < 로 비교할 수 없음. |
상함 조건 연산자(Ternary Conditional Operator)
question ? answer1 : answer2
와 같은 형태로 조건이 참일 경우 answer1 이 조건이 거짓일 경우 answer2 가 실행됩니다.
Nill 병합 연산자(Nil-Coalescing Operator)
a ?? b
형태를 갖는 연산자 입니다. 옵셔널 a
를 unwrap 해서 만약 nil 이면 b
를 반환합니다.
1 | let defaultColorName = "red" |
userDefinedColorName
이 nil
이 되기 때문에 defaultColorName
인 red 가 사용되게 됩니다.
범위 연산자 (Range Operators)
닫힌 범위 연산자(Closed Range Operator)
(a..b)
의 형태로 범위의 시작과 끝이 있는 연산자 입니다. 마지막 숫자인 b를 포함합니다.
1 | for index in 1...5 { |
반 닫힘 범위 연산자(Half-Open Range Operator)
(a..<b)
의 형태로 a 부터 b 보다 작을 때까지의 범위를 갖습니다.
단방향 범위(One-Side Ranges)
[a..]
[..a]
의 형태로 범위의 시작 혹은 끝만 지정해 사용하는 범위 연산자 입니다.
1 | let names = ["Anna", "Alex", "Brian", "Jack"] |
마찬가지로 받 단힘 연산자도 사용 가능합니다. 또한, 특정 값을 포함하는지 여부를 확인할 때도 사용 가능합니다.
1 | let range = ...5 |
논리 연산자(Logical Operators)
Swift 에서는 세가지 표준 논리 연산자를 지원합니다.
- 논리 부정 NOT (
!a
) - 논리 곱 AND (
a && b
) - 논리 합 OR (
a || b
)
Swift의 논리 연산자 && 와 || 는 왼쪽의 표현을 우선해서 논리 계산을 합니다.
명시적 괄호 (Explicit Parentheses)
논리 연산자의 적용 우선 순위를 연산자에게 맡기지 않고 명시적으로 괄화를 사용해 계산 순서를 정할 수 있습니다.
1 | if (enteredDoorCode && passedRetinaScan) || hasDoorKey || knowsOverridePassword { |