성장 아카이브
#2. 연산자 본문
** 스위프트 프로그래밍 - 야곰 책을 위주로 공부했습니다. **
[연산자 종류]
- 할당연산자: =
- 산술연산자: + - * / %
- 비교연산자: == >= <= > < != === !== ~=
- 삼항조건연산자: Q?A:B
- ★범위연산자: A...B A..<B A... ...A ..<A
- 부울연산자: ! && ||
- 비트연산자: ~A A&B A|B A^B A>>B A<<B
- 복합할당연산자: += -= *= /= %=
- 오버플로연산자: &+ &- &*
- 부호변경연산자: -A
- ★nil병합연산자: ??
- ★옵셔널강제추출연산자: A!
- ★옵셔널연산자: A?
- 연산자에게는 "우선순위"과 "결합방향"이 있다.
- ★사용자정의연산자: 전위/중위/후위 결합방향 우선순위
* ★는 스위프트에서 도입되는 개념들로 사용법을 자세히 살펴보았다.
1. 범위연산자
// 범위연산자
var arr: [Character] = ["0", "1", "2", "3", "4", "5"]
var str:String = ""
for i in arr[0...3] { // 0 ~ 3 (0이상 3이하)
str.append(i)
}
print(str) // 0123
str = ""
for i in arr[0..<3] { // 0 ~ 2 (3미만)
str.append(i)
}
print(str) // 012
str = ""
for i in arr[0...] { // 0 ~ (0이상)
str.append(i)
}
print(str) // 012345
str = ""
for i in arr[...3] { // ~ 3 (3이하)
str.append(i)
}
print(str) // 0123
2. 옵셔널연산자 & nil병합연산자 & 옵셔널강제추출연산자
// 옵셔널연산자 & nil병합연산자 & 옵셔널강제추출연산자
var value: String? = nil // ? 옵셔널연산자
print(value ?? "nil입니다.") // ?? nil병합연산자
value = "rookie"
print(value!) // ! 옵셔널강제추출연산자 rookie
nil병합연산자는 옵셔널을 사용할 때 아주 유용한 연산자이다.
3. 사용자정의연산자
// 사용자정의연산자
// 전위
prefix operator ** // 정의
prefix func **(value: Int) -> Int{ // 구현
return value * value
}
print(**2) // 4
// 후위
postfix operator +++ // 정의
postfix func +++(value: Int) -> Int { // 구현
return value + value + value
}
print(10+++) // 30
// 중위
infix operator <- : MultiplicationPrecedence // 정의
func <-(lhs: String, rhs: String) -> Bool { // 구현
return lhs.contains(rhs)
}
print("Hello rookie" <- "rookie") // true
이미 존재하는 연산자에 기능을 추가할 때는 따로 정의하지 않고 함수만 중복 구현하면 됩니다.
4. [추가] 사용자정의 우선순위 & 결합방향
- 예정 -
'야매 프로그래밍 > iOS' 카테고리의 다른 글
#3. Swift UserDefaults 사용하는 법 (0) | 2020.08.22 |
---|---|
#1. 데이터 타입 (0) | 2020.05.02 |
#0. 스위프트를 시작하며 (0) | 2020.04.18 |
Comments