저번 포스팅에서 다뤘던 스위프트의 속성을 사용해서 다양한 연산자(Operator)를 처리하는 방법에 대해 설명하고자 합니다.
연산자를 사용하면 값을 합치고, 변경하고, 검사 할 수 있습니다.
예를 들면 1 + 2처럼 +라는 연산자를 사용할 수 있고 &&를 사용해 Bool 값을 연산할 수 있습니다.
연산자는 단항, 이항, 삼항으로 분류 할 수 있습니다.
단항은 single target(-a), prefix operator(!b), postfix operator(c!)와 같은 것이 있습니다.
이항은 two targets(2 + 3)와 같은 것이 있습니다.
삼항은 three targets(a ? b : c)와 같은 것이 있습니다.
연산자에 영향을 주는 Value를 operand라고 부릅니다.
1 + 2에서 +는 binary operator이며 1과 2는 operand라고 말할 수 있습니다.
Assignment Operator
할당 연산자는 값을 초기화하거나 갱신하는 역할을 합니다.
let b = 10
var a = 5
a = b
// a is now equal to 10
Arithmetic Operators
스위프트는 4개의 Arithmetic Operator를 제공합니다.
- Addition +
- Subtraction -
- Multiplication *
- Division /
1 + 2 // equals 3
5 - 3 // equals 2
2 * 3 // equals 6
10.0 / 2.5 // equals 4.0
그리고 Addition Operator는 String를 합칠때 사용 할 수 있습니다.
var helloworld = "hello, " + "world" // equals "hello, world"
Remainder Operator
나머지 연산자는 %를 사용하고 left value를 right value로 나누고 남은 나머지를 반환합니다.
9 % 4 // equals 1
Compound Assignment Operator
합성 할당 연산자는 Assignment와 이항연산자를 합친 연산자입니다.
var a = 1
a += 2
// a is now equal to 3
a += 2는 실제로 a = a + 2로 볼 수 있습니다.
Comparison Operators
비교 연산자는 6개가 있습니다.
- Equal to ==
- Not equal to !=
- Greater than >
- Less than <
- Greater than or equal to >=
- Less than or equal to <=
1 == 1 // true because 1 is equal to 1
2 != 1 // true because 2 is not equal to 1
2 > 1 // true because 2 is greater than 1
1 < 2 // true because 1 is less than 2
1 >= 1 // true because 1 is greater than or equal to 1
2 <= 1 // false because 2 is not less than or equal to 1
Ternary Conditional Operator
삼항 연산자는 if..else와 비슷합니다.
form은 question ? answer1 : answer2 의 형태입니다.
question이 true이면 answer1을, false이면 answer2를 반환합니다.
let contentHeight = 40
let hasHeader = true
let rowHeight = contentHeight + (hasHeader ? 50 : 20)
// rowHeight is equal to 90
Nil-Coalescing Operator
nil 결합 연산자는 Optional value가 값을 가지고 있는지 확인해서 값을 리턴하는 연산자 입니다.
a ?? b
a가 nil이 아니면 a를, nil이면 b를 반환합니다.
이 코드는 아래와 같이 나타낼 수 있습니다.
a != nil ? a! : b
Range Operators
범위 연산자는 3가지 종류가 있습니다.
- Closed Range Operator a...b
- Half-Open Range Operator a..<b
- One-Sided Ranges Operator a... / ...b
Logical Operators
논리 연산자는 operand가 Boolean인 것들의 Operator입니다.
- Logical Not !a
- Logical And a && b
- Logical OR a || b
'Language > Swift' 카테고리의 다른 글
(Swift) 스위프트 속성(Property)기초 (0) | 2017.10.08 |
---|---|
(Swift) 스위프트 맛보기 (0) | 2017.10.07 |