기본 연산자 (Basic Operators)
Swift
에서는 프로그래밍 언어에서 통상적으로 이용하는 +
, -
, /
, %
와 같은 산술연산자와 더불어 &&
, ||
과 같은 논리 연산자, 그리고 a..<b
, a...b
와 같은 범위 연산자를 지원합니다.
용어 (Terminology)
연산자에는 단항(Unary), 이항(Binary), 삼항(Tenary) 연산자가 존재합니다.
- 단항 연산자:
-a
,!b
,c!
와 같이 하나의 대상의 앞뒤에 바로 붙여 사용합니다. - 이항 연산자:
2 + 3
과 같이 두 대상 사이에 위치하여 사용합니다. - 삼항 연산자:
a ? b : c
와 같이 사용되며 Swift 에서 사용되는 삼항 연산자는 단 하나만 존재합니다.
할당 연산자 (Assignment Operator)
할당 연산자는 여느 프로그래밍 언어와 동일하게 값을 초기화하는데 이용되거나 변경하는데에 이용합니다.
아래와 같이 변수 혹은 상수 모두에 사용이 가능합니다.
let a = 10
var b = 5
a = b
// a == 5
혹은 아래와 같이 Tuple
타입을 이용하여 여러개의 값을 한 번에 할당할 수 있습니다.
let (x, y) = (1, 2)
let (name, age) = ("jeongsu", 28)
합성 할당 연산자 (Compound Assignment Operators)
a = a + 2
와 같은 연산을 진행하고자 할 때, 할당 연산(=) 과 덧셈 연산(+)으로 구성된 연산을 합성하여 +=
형태로 축약하여 사용이 가능합니다.
var a = 10
a += 5
// a == 15
삼항 조건 연산자 (Ternary Conditional Operator)
삼항 조건 연산자는 condition ? answer1 : answer2
의 구조를 갖습니다.
condition의 조건이 참인 경우, answer1이 거짓인 경우 answer2가 실행됩니다.
삼항 조건 연산자는 아래와 같은 경우 편리하게 이용할 수 있습니다.
if condition {
answer1
} else {
answer2
}
위와 같이 condition 이라는 조건을 통한 분기 제어를 진행하는 경우 condition ? answer1 : answer2
와 같이 축약하여 사용이 가능합니다.
삼항 조건 연산자는 코드를 축약하여 짧게 만들어주며 가독성을 높여줍니다.
Nil 병합 연산자 (Nil-Coalescing Operator)
nil 병합 연산자는 a ?? b
와 같은 형태를 갖는 연산자입니다.
이때, a
는 옵셔널 타입이여야 하며 옵셔널 a
를 unwrapping 하여 만일 a
가 nil
값을 갖을 경우 b
를 반환하겠다는 의미입니다.
nil
병합 연산자는 다음 삼항 연산자의 축약형입니다.
a != nil ? a! : b
a
가 nil
이 아닌 경우, a!
를 통해 a를 Forced Unwrapping하여 사용하며 nil
인 경우 b
를 반환하겠다는 의미입니다.
단방향 범위 (One-Side Ranges)
[a...]
, [..a]
의 형태로 범위의 시작 혹은 끝 부분만 지정하여 사용하는 범위 연산자 ㅇㅂ니다.
지정한 시작 값 혹은 끝 값은 범위에 포함되며 아래 예시는 관련 예제입니다.
let nameArray = ["Jungsu", "Jason"]
for name in names[...1] {
print(name)
}
// Jungsu
// Jason
명시적 괄호(Explicit Parentheses)
논리 연산자의 적용 우선 순위를 연산자에게 맡기지 않고 코드상에 명시적으로 기재하여 계산 순서를 제어할 수 있습니다.
if (enteredDoorCode && passedRetinaScan) || hasDoorKey || knowsOverridePassword {
print("Welcome!")
} else {
print("ACCESS DENIED")
}
위와 같이 명시적 괄호를 이용하면 가독성이 높아져 코드의 의도를 더욱 명확하게 하는데 도움이 됩니다.
'iOS' 카테고리의 다른 글
[iOS] [Swift] The Swift Language Guide - 3. 콜렉션 타입 (Collection Types) (0) | 2021.06.22 |
---|---|
[iOS] [Swift] The Swift Language Guide - 2. 문자열과 문자(String and Characters) (0) | 2021.06.22 |
[iOS] [Swift] Enumerations (0) | 2021.06.05 |
[iOS] RIBs - Tutorial 2 (0) | 2021.04.11 |
[iOS] RIBs - Tutorial 1 (1) | 2021.04.10 |