Language/Swift
Swift - 05
비코딩
2022. 2. 8. 01:48
연산자
띄어쓰기와 연산자
스위프트에서는 띄어쓰기도 중요한 문법이다.
연산자가 어디에 위치하느냐도 중요하지만, 연산자 앞과 뒤 중 어디에 공백이 있는지도 중요한 부분
ex) 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... : A 이상의 수를 묶어 범위를 표현, A를 포함
...A : A 이하의 수를 묶어 범위를 표현, A를 포함
..<A : A 미만의 수를 묶어 범위를 표현, A를 포함하지 않음
기타 연산자
연산자 | 부호 | 설명 |
nil 병합 연산자 | A ?? B | A가 nil이 아니면 A를, nil이면 B를 반환 |
부호 변경 연산자 | -A | A(수)의 부호를 변경 |
옵셔널 강제 추출 연산자 | O! | O(옵셔널 개체)의 값을 강제로 추출 |
옵셔널 연산자 | V? | V(옵셔널 값)를 안전하게 추출하거나, V(데이터 타입)가 옵셔널임을 표현 |
* nil 병합 연산자는 옵셔널을 사용할 때 아주 유용한 연산자이다. 아래 두 코드는 같은 역할을 하지만, 아래의 nil 병합 연산자를 사용하는 것이 훨씬 안전하고 간단한 방법이다.
let valueInt: Int = someOptionalInt != nil ? someOptionalInt! : 0
let valueInt: Int = someOptionalInt ?? 0 // nil 병합 연산자(??) -> 간단하면서 안전
[출처 : Swift 프로그래밍 야곰]