Swift - 연산자

luminoux·2022년 5월 21일
1

Swift 문법

목록 보기
4/8
post-thumbnail

연산자


1. 간단한 연산자들

연산자부호설명
대입연산자A = BA에 B값 할당, 서로 같은 데이터 타입이 아니라면 오류가 발생합니다.
더하기 연산자A + BA에 B값을 더합니다.
곱하기 연산자A * BA와 B값을 곱한 값을 반환합니다.
나누기 연산자A / BA를 B로 나눈 값을 반환합니다.
나머지 연산자A % BA를 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 == BA와 B가 같은 값인지 비교하여, 불리언 값을 반환합니다.
값이 크거나 같다.A >= BA가 B보다 크거나 같은 값인지 비교하여 불리언 값을 반환합니다.
값이 작거나 같다.A <= BA가 B보다 작거나 같은 값인지 비교하여 불리언 값을 반환합니다.
값이 크다.A > BA가 B보다 큰 값인지 비교하여 불리언 값을 반환합니다.
값이 작다.A < BA가 B보다 작은 값인지 비교하여 불리언 값을 반환합니다.
값이 같지 않다.A != BA와 B가 다른 값인지 비교하여, 불리언 값을 반환합니다.
참조가 같다.A === BA와 B가 reference Type일 경우,A와 B가 같은 인스턴스를 가리키는지 비교하여, 불리언 값을 반환합니다.
참조가 같지않다.A !== BA와 B가 reference Type일 경우, A와 B가 다른 인스턴스를 가리키는지 비교하여, 불리언 값을 반환합니다.
패턴 매치.A ~= BA와 B의 패턴이 매치되는지 확인하여 불리언 값을 반환합니다.

참조 연산자 예시

class Class {
    let value: Int = 3
}


let valueA: Int = 3
let valueB: Int = 5
let valueC: Int = 5

let isSameValueAB: Bool = valueA == valueB // false
let isSameValueBC: Bool = valueB == valueC // true

let referenceA: Class = Class()
let referenceB: Class = Class()
let referenceC: Class = referenceA

let isSameReferenceAB: Bool = referenceA === referenceB // false
let isSameReferenceAC: Bool = referenceA === referenceC //true

3. 삼항 조건 연산자

연산자부호설명
삼항 조건 연산자Question ? A : BQuestion이 참이면 A, 거짓이면 B를 반환합니다.
let valueA: Int = 3
let valueB: Int = 5

var biggerValue: Int = valueA > valueB ? valueA : valueB
print(biggerValue) // 5

4. 범위 연산자

연산자부호설명
폐쇄 범위 연산자A...BA부터 B까지의 수, A와 B포함
반폐쇄 범위 연산자A..<BA부터 B까지의 수, A는 포함 , B는 미포함
단방향 범위 연산자A...A이상의 수
...AA이하의 수
..<AA미만의 수

5. 부울 연산자

연산자부호설명
NOT!A불리언 값의 반대값을 반환합니다.
ANDA && BAND 논리 연산을 실행합니다.
ANDA || BOR 논리 연산을 실행합니다.

6. 비트 연산자

연산자부호설명
NOT 비트 연산자~AA의 비트를 반전한 결과를 반환합니다.
AND 비트 연산자A & BA와 B의 비트 AND연산을 실행합니다.
OR 비트 연산자A | BA와 B의 OR논리 연산을 실행합니다.
XOR 비트 연산자A ^ BA와 B의 XOR논리 연산을 실행합니다.
비트 이동 연산자(시프트)A >> BA비트를 B만큼 시프트합니다.
A << BA비트를 B만큼 시프트합니다.

7. 복합 할당 연산자

표현설명같은 표현
A+=BA와 B의 합을 A에 할당합니다.A = A + B
A -= BA와 B의 차를 A에 할당합니다.A = A - B
A *= BA와 B의 곱을 A에 할당합니다.A = A * B
A %= BA를 B로 나눈 나머지를 A에 할당합니다.A = A % B
비트 이동 연산자(시프트)A >> BA비트를 B만큼 시프트합니다.
A << BA비트를 B만큼 시프트합니다.

8. 기타 연산자 (Optional)

nil 병합 연산자는 아주 중요한 연산자입니다.

let nilValue: Int? = nil
let valueInt: Int = nilValue ?? 0

위와 같은 방법으로 사용합니다.
Optional 값을 안전하게 사용할 수 있습니다.

연산자부호설명
nil 병합 연산자A ?? BA가 nil이 아니면 A를 반환하고, A가 nil이면 B를 반환합니다.
부호변경 연산자-AA의 부호를 변경합니다.
옵셔널 강제 추출 연산자value!옵셔널 값을 강제로 추출합니다.
옵셔널 연산자value?value(옵셔널 값)을 안전하게 추출하거나, value가 옵셔널임을 표시합니다.
profile
Apple Developer Academy @ Postech 2022

0개의 댓글