일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Crawling
- 깃허브 푸시
- HIG 한글
- 사용자 정의 연산자
- 스위프트
- 워들
- 데이터타입
- 크롤링
- 프로젝트
- wordle 사이트
- react
- 백준 문제
- 깃허브 페이지 배포
- 스위프트 기초
- XCTest
- 파이썬
- Apple HIG
- 워들 사이트
- 중위 연산자
- 전위 연산자
- 파이썬 깃허브 푸시
- 깃허브 페이지
- Github
- 리액트
- Python
- github push
- SWiFT
- HIG 한글 번역
- 리액트 배포
- 후위 연산자
Archives
- Today
- Total
Jeonhui {ios}
[swift] (3) 연산자 본문
안녕하세요. Jeonhui입니다.
이번 시간에는 swift의 연산자에 대해 알아보도록 하겠습니다.
이전 글
연산자
대입 연산자
A = B | A에 B를 대입 |
산술 연산자
A + B | A와 B를 더한 값 반환 |
A - B | A와 B를 뺀 값 반환 |
A * B | A와 B를 곱한 값 반환 |
A / B | A와 B를 나눈 값 반환 |
A % B | A와 B를 나눈 나머지 반환 |
비교 연산자 (true, false 반환)
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와 B가 같은 인스턴스를 가르킨다 (클래스 인스턴스 경우에만) |
A !== B | A와 B가 다른 인스턴스를 가르킨다 |
A ~= B | A와 B의 패턴이 매치된다 |
삼항 조건 연산자
Bool ? A : B | if(Bool): A else B 와 같음 조건이 참이라면 A, 아니라면 B |
범위 연산자
A..B | A부터 B까지 (B 포함) |
A..<B | A부터 B 이전까지 (B 포함 X) |
A... | A 이상의 수 (A 포함) |
...A | A 이하의 수 (A 포함) |
..<A | A 미만의 수 (A 포함 X) |
부울 연산자
!A | not 연산 |
A && B | and 연산 |
A || B | or 연산 |
비트 연산자
~A | A의 비트 반전 |
A & B | A와 B의 and 논리 연산 |
A | B | A와 B의 or 논리 연산 |
A ^ B | A와 B의 xor 논리 연산 |
A >> B, A<<B | A의 비트를 B만큼 이동 |
복합 할당 연산자
A += B | A = A + B |
A -= B | A = A - B |
A *= B | A = A * B |
A /= B | A = A / B |
A %= B | A = A % B |
A <<= b | A = A << b |
A >>= b | A = A >> b |
A &= B | A = A & B |
A |= B | A = A | B |
A ^= B | A = A ^ B |
오버플로우 연산자 (오버플로우에 대비한 연산)
&+ |
&- |
&* |
기타 연산자
A ?? B | A가 nil이 아니면 A 반환 nil이면 B 반환 |
-A | 수의 부호 변경 |
O! | 옵셔널 개체 강제 추출 |
V? | 옵셔널 값 안전하게 추출하거나, 데이터타입이 옵셔널임을 표현 |
사용자 정의 연산자
(/, =, -, +, !, *, %, <, >, &, |, ^, ?, ~)를 결합해서 사용
토큰 (=, ->, //, /*, */, . ) 전위 연산자 (<, &, ?) 중위 연산자 (?) 후위 연산자 (>, !, ?) 등은 재정의할 수 없음
전위 연산자 사용자 정의
prefix operator **
prefix func ** (value:Int)->Int{
return value*value
}
let a:Int = 7
let b:Int = a**
print(b) // 49
후위 연산자 사용자 정의
postfix operator **
postfix func ** (value:Int)->Int{
return value+value
}
let a:Int = 1
let b:Int = **a
print(b) // 2
중위 연산자 사용자 정의
중위 연산자는 우선순위 그룹을 명시해줄 수 있습니다.
우선순위 그룹은 precedencegroup 뒤에 그룹 이름을 써주어 정의합니다.
precedencegroup: 우선순위 그룹 이름 {
higherThan: 더 낮은 우선순위 그룹 이름
higherThan: 더 높은 우선순위 그룹 이름
associativity: 결합방향(left/right/none)
assignment: 할당방향 사용(true/false) //옵셔널 체이닝 관련 개념
}
infix operater **: 우선 순위 그룹 // 지정 안할 시에 DefaultPrecedence그룹으로 자동 지정
func ** (left: String, right: String) -> Bool {
return left.contains(right)
}
이번 시간에는 연산자에 대해 정리해보았습니다. 잘못된 부분이 있을 경우 댓글을 남겨주세요. :)
읽어주셔서 감사합니다.
'swift' 카테고리의 다른 글
[swift] (2) 고급데이터타입 (0) | 2022.02.24 |
---|---|
[swift] (1) 변수와 상수, 데이터타입 (0) | 2022.02.23 |