연산자
1. 간단한 연산자들
연산자 | 부호 | 설명 |
---|
대입연산자 | A = B | A에 B값 할당, 서로 같은 데이터 타입이 아니라면 오류가 발생합니다. |
더하기 연산자 | A + B | A에 B값을 더합니다. |
곱하기 연산자 | A * B | A와 B값을 곱한 값을 반환합니다. |
나누기 연산자 | A / B | A를 B로 나눈 값을 반환합니다. |
나머지 연산자 | A % B | A를 B로 나눈 나머지를 반환합니다. |
Swift는 다른 데이터 타입간의 연산을 엄격하게 제한합니다.
Swift의 나누기 연산은 부동소수형까지 지원합니다.
.truncatingRemainder(dividingBy: two)
부동소수형의 modulo 연산을 사용하기위해 truncatingRemainder 메소드를 이용합니다.
let one: Double = 5.0
let two: Double = 1.6
let three: Double = one.truncatingRemainder(dividingBy: two)
2. 비교 연산자
연산자 | 부호 | 설명 |
---|
값이 같다. | A == B | A와 B가 같은 값인지 비교하여, 불리언 값을 반환합니다. |
값이 크거나 같다. | A >= B | A가 B보다 크거나 같은 값인지 비교하여 불리언 값을 반환합니다. |
값이 작거나 같다. | A <= B | A가 B보다 작거나 같은 값인지 비교하여 불리언 값을 반환합니다. |
값이 크다. | A > B | A가 B보다 큰 값인지 비교하여 불리언 값을 반환합니다. |
값이 작다. | A < B | A가 B보다 작은 값인지 비교하여 불리언 값을 반환합니다. |
값이 같지 않다. | A != B | A와 B가 다른 값인지 비교하여, 불리언 값을 반환합니다. |
참조가 같다. | A === B | A와 B가 reference Type일 경우,A와 B가 같은 인스턴스를 가리키는지 비교하여, 불리언 값을 반환합니다. |
참조가 같지않다. | A !== B | A와 B가 reference Type일 경우, A와 B가 다른 인스턴스를 가리키는지 비교하여, 불리언 값을 반환합니다. |
패턴 매치. | A ~= B | A와 B의 패턴이 매치되는지 확인하여 불리언 값을 반환합니다. |
참조 연산자 예시
class Class {
let value: Int = 3
}
let valueA: Int = 3
let valueB: Int = 5
let valueC: Int = 5
let isSameValueAB: Bool = valueA == valueB
let isSameValueBC: Bool = valueB == valueC
let referenceA: Class = Class()
let referenceB: Class = Class()
let referenceC: Class = referenceA
let isSameReferenceAB: Bool = referenceA === referenceB
let isSameReferenceAC: Bool = referenceA === referenceC
3. 삼항 조건 연산자
연산자 | 부호 | 설명 |
---|
삼항 조건 연산자 | Question ? A : B | Question이 참이면 A, 거짓이면 B를 반환합니다. |
let valueA: Int = 3
let valueB: Int = 5
var biggerValue: Int = valueA > valueB ? valueA : valueB
print(biggerValue)
4. 범위 연산자
연산자 | 부호 | 설명 |
---|
폐쇄 범위 연산자 | A...B | A부터 B까지의 수, A와 B포함 |
반폐쇄 범위 연산자 | A..<B | A부터 B까지의 수, A는 포함 , B는 미포함 |
단방향 범위 연산자 | A... | A이상의 수 |
| ...A | A이하의 수 |
| ..<A | A미만의 수 |
5. 부울 연산자
연산자 | 부호 | 설명 |
---|
NOT | !A | 불리언 값의 반대값을 반환합니다. |
AND | A && B | AND 논리 연산을 실행합니다. |
AND | A || B | OR 논리 연산을 실행합니다. |
6. 비트 연산자
연산자 | 부호 | 설명 |
---|
NOT 비트 연산자 | ~A | A의 비트를 반전한 결과를 반환합니다. |
AND 비트 연산자 | A & B | A와 B의 비트 AND연산을 실행합니다. |
OR 비트 연산자 | A | B | A와 B의 OR논리 연산을 실행합니다. |
XOR 비트 연산자 | A ^ B | A와 B의 XOR논리 연산을 실행합니다. |
비트 이동 연산자(시프트) | A >> B | A비트를 B만큼 시프트합니다. |
| A << B | A비트를 B만큼 시프트합니다. |
7. 복합 할당 연산자
표현 | 설명 | 같은 표현 |
---|
A+=B | A와 B의 합을 A에 할당합니다. | A = A + B |
A -= B | A와 B의 차를 A에 할당합니다. | A = A - B |
A *= B | A와 B의 곱을 A에 할당합니다. | A = A * B |
A %= B | A를 B로 나눈 나머지를 A에 할당합니다. | A = A % B |
비트 이동 연산자(시프트) | A >> B | A비트를 B만큼 시프트합니다. |
| A << B | A비트를 B만큼 시프트합니다. |
8. 기타 연산자 (Optional)
nil 병합 연산자는 아주 중요한 연산자입니다.
let nilValue: Int? = nil
let valueInt: Int = nilValue ?? 0
위와 같은 방법으로 사용합니다.
Optional 값을 안전하게 사용할 수 있습니다.
연산자 | 부호 | 설명 |
---|
nil 병합 연산자 | A ?? B | A가 nil이 아니면 A를 반환하고, A가 nil이면 B를 반환합니다. |
부호변경 연산자 | -A | A의 부호를 변경합니다. |
옵셔널 강제 추출 연산자 | value! | 옵셔널 값을 강제로 추출합니다. |
옵셔널 연산자 | value? | value(옵셔널 값)을 안전하게 추출하거나, value가 옵셔널임을 표시합니다. |