본문 바로가기

iOS

[iOS] [Swift] The Swift Language Guide - 1. 기본 연산자 (Basic Operators)

기본 연산자 (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 하여 만일 anil 값을 갖을 경우 b를 반환하겠다는 의미입니다.

nil 병합 연산자는 다음 삼항 연산자의 축약형입니다.

a != nil ? a! : b

anil이 아닌 경우, 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")
}

위와 같이 명시적 괄호를 이용하면 가독성이 높아져 코드의 의도를 더욱 명확하게 하는데 도움이 됩니다.