스위프트 기본 연산자 (Basic Operators)
할당연산자(Assignment Operator)
let b = 10 var a = 5 a = b // a is now equal to 10
할당연산자는(=) 값을 초기화하거나 변경할 때 사용한다.
let (x, y) = (1, 2) // x is equal to 1, and y is equal to 2
오른쪽의 값인 튜플은 여러개의 상수나 변수로 분해될 수 있다.
if x = y { // This isn't valid, because x = y doesn't return a value. }
C와 Object-C와 다르게 스위프트의 할당 연산자는 값을 리턴하지 않는다.
위의 코드는 잘못되었다.
수학연산자(Arithmetic Operators)
- Addition +
- Subtraction -
- Multiplication *
- Division /
C와 Object-C 와 다르게 스위프트의 수학 연산자는 기본값으로 오버플로우를 허용하지 않는다.
스위프트의 오버플로우 연산자로 오버플로우가 발생할 때 정책을 선택할 수 있다.
"hello, " + "world" // equals "hello, world"
+ 연산자는 String값을 연결할 때 사용할 수 있다.
나머지 연산자(Remainder Operator)
나머지연산자(a % b)는 얼마나 많은 b를 곱해야 a가 되는지를 수행하고 나머지를 리턴한다.
9 % 4 // equals 1
a % b를 계산할 때 수행하는 식은 아래와 같다.
a = (b x some multiplier) + remainder
따라서 같은 방식으로 아래 예제의 값은 -1이다.(-9 = (4 x -2) + -1)
-9 % 4 // equals -1
단일 마이너스 연산자(Unary Minus Operator)
let three = 3 let minusThree = -three // minusThree equals -3 let plusThree = -minusThree // plusThree equals 3, or "minus minus three"
단일 플러스 연산자(Unary Plus Operator)
let minusSix = -6 let alsoMinusSix = +minusSix // alsoMinusSix equals -6
복합 할당 연산자(Compound Assignment Operators)
C언어와 같이 스위프트는 다른 연산자와 할당 연산자를 결합한 compound assignment operator를 제공한다.
var a = 1 a += 2 // a is now equal to 3
비교연산자(Comparison Operators)
- 같다 ==
- 같지 않다 !=
- 크다 >
- 작다 <
- 크거나 같다 >=
- 작거나 같다 <=
삼원 조건 연산자(Ternary Conditional Operator)
nil 합체 연산자(Nil-Coalescing Operator)
닫힌 범위 연산자(Closed Range Operator)
반 열림 범위 연산자(Half-Open Range Operator)
한 방향 범위(One-Sided Ranges)
논리 연산자(Logical Operators)
- Logical NOT (!a)
- Logical AND (a && b)
- Logical OR (a || b)