🔥 소개

261자
3분

프로그래밍을 하다 보면 값을 확인하고, 변경하고, 조합해야 할 일이 많이 생깁니다. 이럴 때 우리는 연산자라는 특별한 기호나 구문을 사용하게 되는데요. 예를 들어, 덧셈 연산자(+)는 두 숫자를 더해주고, 논리 AND 연산자(&&)는 두 개의 불리언 값을 결합해 줍니다.

swift
let i = 1 + 2 // 덧셈 연산자로 두 숫자를 더함
if enteredDoorCode && passedRetinaScan { // 논리 AND 연산자로 두 불리언 값을 결합
    // 문이 열리는 코드
}
swift
let i = 1 + 2 // 덧셈 연산자로 두 숫자를 더함
if enteredDoorCode && passedRetinaScan { // 논리 AND 연산자로 두 불리언 값을 결합
    // 문이 열리는 코드
}

Swift는 C 언어 등에서 사용되던 연산자들을 지원하면서도, 몇 가지 기능을 개선하여 흔히 발생할 수 있는 코딩 오류를 제거했습니다. 예를 들어, 할당 연산자(=)는 값을 반환하지 않게 하여 동등 연산자(==)를 사용해야 할 때 실수로 사용되는 것을 방지합니다.

또한 산술 연산자(+, -, *, /, % 등)는 값의 오버플로를 감지하고 허용하지 않아, 값의 범위를 초과하는 큰 값이나 작은 값을 다룰 때 예기치 않은 결과가 발생하는 것을 막아줍니다. 물론 필요하다면 Swift의 오버플로 연산자를 사용하여 값 오버플로 동작을 선택할 수도 있습니다.

swift
let a: Int8 = 100
let b: Int8 = 20
 
//let c = a + b // 오류: Int8의 범위를 초과함
 
let c = a &+ b // 오버플로 연산자 &+를 사용하면 오버플로를 허용
print(c) // -116
swift
let a: Int8 = 100
let b: Int8 = 20
 
//let c = a + b // 오류: Int8의 범위를 초과함
 
let c = a &+ b // 오버플로 연산자 &+를 사용하면 오버플로를 허용
print(c) // -116

뿐만 아니라 Swift는 C에는 없는 범위 연산자도 제공하는데요. a..<ba...b처럼 값의 범위를 간결하게 표현할 수 있게 해줍니다.

swift
for i in 1...5 {
    print(i) // 1부터 5까지 출력
}
 
let range = 0..<10
print(range.contains(7)) // true
swift
for i in 1...5 {
    print(i) // 1부터 5까지 출력
}
 
let range = 0..<10
print(range.contains(7)) // true

이 장에서는 Swift에서 일반적으로 사용되는 연산자에 대해 알아보겠습니다. 좀 더 고급 연산자나 사용자 정의 연산자, 사용자 정의 타입에 대한 표준 연산자 구현 등은 고급 연산자 장에서 다룰 예정이에요.

자, 그럼 Swift의 기본 연산자와 함께 알아두면 유용한 팁들을 차근차근 살펴보도록 하죠!

YouTube 영상

채널 보기
Pro펑터, 입력과 출력을 동시에 다루는 펑터 | 프로그래머를 위한 카테고리 이론
NestJS 역할 기반 접근 권한 부여 - Guard, Reflector | NestJS 가이드
class-validator 와 DTO | NestJS 가이드
함수 타입과 Hom-Set 이해하기 | 프로그래머를 위한 카테고리 이론
관점 지향 로깅 인터셉터 구현 및 전역 바인딩 전략 | NestJS 가이드
NestJS 커스텀 데코레이터 인자 전달 및 파이프 검증 활용법 | NestJS 가이드
NestJS 커스텀 데코레이터, createParamDecorator 사용 | NestJS 가이드
함수 객체의 보편적 구성 | 프로그래머를 위한 카테고리 이론