본 포스팅은 '스위프트 프로그래밍 (3판) - 야곰 저' 도서와 앨런 Swift 문법 마스터스쿨 강의를 통해 공부하며 정리하는 포스팅입니다.
혹시 틀린 부분이 있거나 질문이 있으시다면 언제든지 댓글 달아주시면 정말 감사하겠습니다 :)
1. 연산자
A + B (+ : 연산자, A, B : 피연산자)
1) 단항 연산자 : 피연산자가 1개
ex) +a, -a, !a, a...
2) 이항 연산자 : 피연산자가 2개
ex) a+b, a>=b
3) 삼항 연산자 : 피연산자가 3개
a ? b : c
2. 할당 연산자
- 값을 할당할 때 사용하는 연산자이며, A = B 이렇게 표기함
- 데이터 타입이 서로 다르면 오류 발생
- 연산자가 여러개 일때, 가장 우선순위가 낮아서 가장 마지막에 실행함 (연산자 우선순위 공식문서 : 링크)
3. 산술 연산자
연산자 | 부호 | 비고 |
더하기 | A + B | |
빼기 | A - B | |
곱하기 | A * B | |
나누기 | A / B | - 정수끼리의 연산에서는 소수점이 아닌 정수 몫 반환 - Double(4/5) != Double(4) / Double(5) |
나머지 | A % B | - 정수, 부동소수점 타입 나머지 연산 모두 지원 |
- Swift는 데이터 타입에 굉장히 엄격하므로, 서로 다른 자료형끼리 연산이 불가능함 -> 타입을 동일하게 변환시켜 연산해야함
4. 복합 할당 연산자
- 할당 연산자와 다른 연산자가 하는 일을 한번에 할 수 있도록 연산자를 결합한 것
- 가급적 이렇게 연산 및 할당을 한번에 하도록 지향!
정의 | 복합 할당 연산 기호 |
value = value + 10 | value += 10 |
value = value - 5 | value -= 5 |
value = value * 2 | value *= 2 |
value = value / 2 | value /= 2 |
value = value % 2 | value %= 2 |
5. 비교 연산자
정의 | 설명 |
== | 같다 |
!= | 같지 않다 "Steve" != "steve" : 대소문자로 구분 -> true |
>, < | 크다, 작다 "Steve" > "steve" : false -> 문자열을 구성하는 문자의 아스키코드를 기준으로 비교 reference : https://beepeach.tistory.com/187 |
>=, <= | 크거나 같다, 작거나 같다 |
~= | 패턴 매치 연산자 - 숫자가 범위 안에 있는지 확인하는 연산자 |
✅ 10 <= n <= 100 : Swift에서는 지원하지 않는 형태 -> (10 <= n && n <= 100)
6. 논리 연산자
논리 연산자 | 의미 |
! | ~이 아닌 |
&& | 그리고 |
|| | 또는 |
7. 접근 연산자 (.)
- 하위로 접근하는 개념
- ex) name.count
8. 삼항 연산자
조건문 ? A(true일 때의 값) : B(false일 때의 값)
- 주로 조건에 따라서 값을 할당할 때 사용
let a = 3
let b = 5
let biggerValue = a > b ? a : b // 5
- 여러번 중첩하는 것도 가능하나, 중첩이 많으면 코드의 가독성이 떨어질 수 있으므로 적절히 사용할 줄 알아야함
9. 범위 연산자
- 제한된 숫자의 범위를 나타내고자 할 때 사용하는 연산자로서 자체가 특별한 타입임을 의미
폐쇄 범위 연산자 | A...B | A부터 B까지의 범위 |
반폐쇄 범위 연산자 | A..<B | A부터 B 미만까지의 범위 |
단방향 범위 연산자 | A... ...B ..<B |
A부터 끝까지 B까지 B미만까지 |
- 내림차순 형식 표기 불가능 (변환만 가능)
- 실수 형식의 범위도 가능
'🐦 Swift' 카테고리의 다른 글
[Swift] 구조체(Struct), 클래스(Class) (0) | 2023.06.08 |
---|---|
[Swift] 데이터 타입 고급 (튜플, 컬렉션, 열거형) (0) | 2023.05.31 |
[Swift] 변수와 상수, 의미 있는 이름 (0) | 2023.05.09 |
[Swift] 옵셔널, 옵셔널 바인딩, 강제 추출, nil-coalescing (0) | 2023.03.20 |
[Swift] 함수 (0) | 2023.03.15 |