Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 오블완
- iOS프로그래밍
- Python
- DART
- testautomation
- 테스트오토메이션
- 스위프트개발
- 티스토리챌린지
- 테킷앱스쿨
- ios개발
- 야곰스위프트
- 로봇프레임워크
- 테스트자동화
- Swift5
- SWIFT
- 스위프트프로그래밍
- 파이썬자동화
- 스위프트
- playwright
- 플러터
- QA자동화
- 다트기초문법
- qaautomation
- robotframework
- dartlang
- 다트언어
- 다트기본문법
- Flutter
- 다트
- pythonautomation
Archives
- Today
- Total
day_by_day
5. 연산자 본문
- 스위프트의 연산자는 특정한 문자로 표현한 함수
5.1 연산자의 종류
5.1.1 할당 연산자
- a = b
5.1.2 산술 연산자
- a + b
- a -b
- a * b
- a / b
- a % b
5.1.3 비교 연산자
- a == b
- a ≥ b
- a ≤ b
- a > b
- a < b
- a != b
- A === B : 참조가 같다
- A와 B가 레퍼런스 타입일 때 같은 인스턴스를 가리키는지 비교하여 불리언 값을 반환
- A !== B : 참조가 같지 않다
- A ~= B : A와 B의 패턴이 매치되는지 확인하여 불리언 값을 반환
5.1.4 삼항 조건 연산자
- Question ? a : b
5.1.5 범위 연산자
- 값의 범위를 나타낼 때
폐쇄 범위 연산자 a…b a,b 를 포함한 범위
반폐쇄 범위 연산자 | a..<b | a포함 b 미포함한 범위 |
단방향 범위 연산자 | a… | a 이상 |
…a | a 이하 | |
..<a | a 미만의 수 |
5.1.6 부울 연산자
- !b
- a && b
- a || b
5.1.7 비트 연산자
- ~a : a의 비트를 반전한 결과
- a & b
- a | b
- a ^ b
- a >> b(오른쪽) , a <<b (왼쪽) : a의 비트를 b 만큼 시프트
- ex) 4 << 1 : 8
- ex) 4 >> 1 : 2
5.1.8 복합 할당 연산자
- a+=b
- a-=b
- a*=b
- a/=b
- a%=b
- a <<= n
- a >>= n
- a &= b
- a != b
- a ^= b : a와 b의 비트 xor
5.1.9 오버플로연산자
- a &+ b
- a &- b
- a &* b
var unsignedInteger: UInt8 = 0
let errorResult: UInt8 = unsignedInteger -1 //error
let overflowResult: UInt8 = unsignedInteger &- 1 // 255
5.1.10 기타 연산자
- a ?? b : a가 nil이 아니면 a, nil이면 b
- -a : 부호변경
- a! : 옵셔널 강제 추출
- a? : a값을 안전하게 추출하거나 옵셔널임을 표시함
5.2 연산자 우선순위와 결합방향
- 스위프트에서는 연산자 우선순위를 지정해 놓았기 때문에 코딩하다가 헷갈리는 경우 확인하면 된다
- 연산자가 연산하는 결합방향도 지정되어 있다
- 기본연산자들의 우선도와 결합방향을 알아보려면 스위프트 표준 라이브러리의 연산자 정의를 참고하면 된다
5.3 사용자 정의 연산자
- 연산자의 역할을 부여할 수 있다
- 전위 연산자 : prefix, !A
- 중위 연산자 : infix, a+b
- 후위 연산자 : postfix, A!
- operator : 연산자 키워드
- associativity 결합방향, precedence 우선순위
5.3.1 전위 연산자
prefix operator **
prefix func ** (value: Int) -> Int { return value * value }
let minusFive: Int = -5
let sqrtMinusFive: Int = **minusFive //25
5.3.2 후위 연산자
prefix operator **
prefix func ** (value: Int) -> Int { return value + 10 }
let five: Int = 5
let fivePlusTen: Int = five** //15
- 하나의 피연산자에 전위 연산과 후위 연산을 한 줄에 사용하게 되면 후위 연산을 먼저 수행한다.
prefix operator **
postfix operator **
prefix func ** (value: Int) -> Int { return value * value }
postfix func ** (value: Int) -> Int { return value + 10 }
let five: Int = 5
let test: Int = **five**
// (10 + 5) * (10 + 5) = 225
5.3.3 중위 연산자
-> 여기는 더 스터디 필요 .. 아무리봐도 머르겠넹 ...
'QA Automation > swift5' 카테고리의 다른 글
8. 옵셔널(Optional) (0) | 2023.06.20 |
---|---|
7. 함수 (0) | 2023.06.20 |
6. 흐름제어 (0) | 2023.06.20 |
4. 데이터 타입 고급 (0) | 2023.06.20 |
3. 데이터 타입 기본 (0) | 2023.06.20 |