연산자 정리

1. 할당 연산자

A = B -> A와 B의 데이터 유형이 같으면 B에 A의 값이 할당됩니다.

2. 산술 연산자

1) A+B 3) A*B

2) A – B 4) A / B

5) A%B

3. 비교 연산자

1) A == B : A와 B의 값이 같은지 확인하고 bool 타입 반환값을 반환한다.

2) A !
= B : A와 B의 값이 다른지 확인하고 bool 타입을 반환한다.

3) A >= B : A가 B보다 크거나 같은지 확인하고 bool 유형 값을 반환합니다.

4) A <= B : A가 B보다 작거나 같은지 확인하고 bool 유형 값을 반환합니다.

5) A > B : A가 B보다 큰지 확인하고 Bool 타입 값을 반환합니다.

6) A < B : A가 B보다 작은지 확인하고 bool 타입 값을 반환한다.

7) A === B : A와 B가 참조 유형이면 A와 B가 동일한 인스턴스를 가리키는지 확인하고 bool 유형을 반환합니다.

8) A !
== B : A와 B가 참조 유형이면 A와 B가 서로 다른 인스턴스를 가리키는지 확인하고 bool 유형을 반환합니다.

9) A ~= B : A와 B의 패턴이 일치하는지 검사하여 bool 타입 반환값을 반환한다.

7)과 8)의 조건을 만족하는 참조 타입은 Swift의 유일한 참조 타입인 Class의 인스턴스를 가리킨다.

값 유형은 == 연산자를 사용하고 참조 유형은 === 연산자를 사용합니다.

4. 삼항 조건 연산자

상태 ? A : B : 조건이 참이면 A를 반환하고 조건이 거짓이면 B를 반환합니다.

– 세 개의 피연산자가 있는 삼항 조건부 연산자입니다.

– 가독성은 좋지 않지만 코드를 단순화할 수 있습니다.

전)

let number1 : Int = 3
let number2 : Int = 5

var biggerNumver = number1 > number2 ? number1 : number2    //return 3

조건: number1이 number2보다 큰 경우 number1 > number2

참이면 숫자 1, 거짓이면 숫자 2를 반환합니다.

5. 범위 연산자

1) 폐쇄 범위 연산자

A … B : A부터 B까지의 숫자를 그룹화하여 범위를 표현하는 연산자

2) 반폐쇄형 오실로스코프 오퍼레이터

A ..< B : A부터 B보다 작은 수까지 그룹화하여 범위를 표현하는 연산자.

3) 단방향 범위 연산자

A … : A보다 크거나 같은 숫자를 그룹화하여 범위를 표현하는 연산자

… A : A보다 작거나 같은 숫자를 그룹화하여 범위를 표현하는 연산자

..< A : A보다 작은 수를 그룹화하여 범위를 표현하는 연산자.

6. 부울 연산자

1) NOT 부울 연산자

!
A: A의 참/거짓 값을 반전시키는 연산자(참이면 거짓, 거짓이면 참)

2) AND 부울 연산자

A && B : A와 B의 부울 논리 연산을 수행합니다(A와 B의 조건이 모두 참인 경우).

3) OR 부울 연산자

|| B : A와 B의 논리 부울 OR 연산을 수행합니다(A 또는 B 조건 중 하나가 참인 경우).

7. 비트 연산자

– 부울 연산자와 비트 연산자를 이해하고 따로 사용하세요.

1) NOT 비트 연산자

~A : A의 비트를 반전한 결과를 반환합니다.

2) 비트 AND 연산자

A & B: A와 B의 비트 AND를 수행합니다.

3) 비트 OR 연산자

| B: A와 B의 비트 OR 논리 연산 수행

4) 비트별 XOR 연산자

A ^ B : A와 B의 비트 논리 XOR 연산 수행

5) 비트 쉬프트 연산자(shift operator)

A >> B : A의 비트를 B만큼 이동(이동)합니다.

A << B : B의 ​​비트를 A만큼 이동(이동)합니다.

8. 복합 대입 연산자

할당 연산자와 다른 연산자가 한 단계에서 작업을 수행할 수 있는 방식으로 연산자를 결합하는 것으로 구성됩니다.

1) A += B : A와 B의 합을 A에 대입한다.

2) A -= B : A와 B의 차를 A에 대입한다.

3) A *= B : A와 B의 곱이 A에 할당됩니다.

4) A /= B : A에 B로 나눈 값이 할당됩니다.

5) A %= B : A를 B로 나눈 값의 나머지가 A에 할당됩니다.

6) A <<= N : A 를 N 으로 비트 시프트한 값을 A 에 대입한다.

7) A >>= N : A 를 N 오른쪽으로 비트 시프트한 값을 A 에 대입한다.

8) A &= B : A와 B의 비트 AND 연산 결과를 A에 대입한다.

9) A |= B : A와 B의 비트 OR 연산 결과를 A에 대입한다.

10) A ^= B : A와 B의 비트별 XOR 연산 결과를 A에 할당합니다.

9. 오버플로 연산자

-기존 프로그래밍에서는 오버플로나 언더플로의 가능성이 있는 연산에 대해 별도의 알고리즘과 로직을 별도로 설계하는 것이 일반적이었습니다.

그러나 Swift에서는 기본 연산자를 사용하여 오버플로에 대비할 수 있습니다.

이것은 오버플로 연산자입니다.

1) 오버플로우 덧셈 연산

&+ : 오버플로에 대해 더하기 연산을 실행합니다.

2) 오버플로 빼기 연산

&- : 오버플로에 대한 빼기 연산 수행

3) 오버플로 곱셈 연산

&* : 오버플로에 대해 곱셈 연산을 수행합니다.

전)

var number : UInt8 = 0

let errorResultNumber : UInt8 = number - 1   //에러발생!
!
let resultNumber : UInt8 = number &- 1 //정상실행 return 255

UInt8 유형은 부호 없는 양수만 나타내는 8비트 정수 유형입니다.

음수가 0 미만이 되는 계산은 런타임 오류를 일으킵니다.

이런 경우 코드에서와 같이 오버플로 연산을 이용하면 오류를 방지할 수 있습니다.

9. 기타 사업자

– 위에서 소개한 연산자 외에 Swift에서 기본적으로 정의된 연산자

1) 제로 합체 연산자

ㅏ?? B : A가 null이 아니면 A를 반환하고 A가 null이면 B를 반환하는 연산자.

2) 문자 변경 연산자

-A: A(숫자)의 부호를 변경합니다.

3) 선택적 강제 연산자

ㅏ!
: A가 옵셔널인 경우 옵셔널을 강제로 언래핑하는 연산자입니다.

4) 선택적 연산자

ㅏ? : 옵셔널 타입인 A의 값을 안전하게 가져오거나 A가 옵셔널 타입임을 표현하는 연산자.

참조:

Yagom의 Swift 프로그래밍 개정판 3판