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 프로그래밍 야곰]