연산자에는 단항연산자, 이항연산자, 삼항연산자가 있다.
- 단항연산자
단항 연산자는 '-a'와 같이 단일 대상에 적용되어진다. 단항전위연산자는 '!b'와 같이 적용대상 바로 앞에 기술되고
단항후위연산자는 'i++'와 같이 적용대상 바로 뒤에 기술된다.
- 이항연산자
이항연산자는 '2 + 3'과 같이 두개의 대상에 적용되고 두 대상 사이에 연산자가 나타나기 때문에 중위연산자가 된다.
- 삼항연산자
삼항연산자는 세개의 대상에 적용된다. C처럼 Swift는 삼항조건연산자((a ? b : c)가 유일한 삼항연산자 이다.
- Assignment Operator(=)
* 할당연산자는 값을 초기화 하거나 다른 값으로 수정한다.
let b = 10
var a = 5
a = b
// a is now equal to 10
* 할당연산자의 오른쪽에 여러개의 값을 가지는 집합(tuple)인 경우,
그 요소는 한 번에 여러개의 상수 또는 변수로 분해될 수 있다.
let (x, y) = (1, 2)
// x is equal to 1, and y is equal to 2
* 할당연산자는 그 자체가 값을 반환하지는 않는다. 다음의 구문은 유효하지 않다.
if x = y {
// this is not valid, because x = y does not return a value
}
- Arithmetic Operators 산술연산자
* Addition (+)
11 + 2 // equals 3
* Subtraction (-)
5 - 3 // equals 2
* Multiplication (*)
2 * 3 // equals 6
* Division (/)
10.0 / 2.5 // equals 4.0
* 더하기연산자는 문자열 연결에도 사용가능하다.
"hello, " + "world" // equals "hello, world"
- Remainder Operator 나머지연산자 %
나머지 연산자는 배수를 제외한 나머지 값을 반환하는 연산자이다.
9 % 4 // equals 1
-9 % 4 // equals -1
- Increment and Decrement Operators 증감연산자 %
* ++
변수의 왼쪽에 연산자가 있으면 값을 반환하기전에 변수의 값을 증가시킨다.
변수의 오른쪽에 연산자가 있으면 값을 반환한 후 변수 값을 증가시킨다.
* --
변수의 왼쪽에 연산자가 있으면 값을 반환하기전에 변수의 값을 감소시킨다.
변수의 오른쪽에 연산자가 있으면 값을 반환한 후 변수 값을 감소시킨다.
var a = 0
let b = ++a
// a 와 b는 둘다 1이다.
let c = a++
// a는 2이고 c는 a가 증가되기 전 값인 1이다.
- Closed Range Operator(a...b)
Closed Range Operator는 a에서 b까지의 값을 a에서 b순으로 실행된다.
범위내의 모든 값들이 for-in 처럼 순차적으로 반복되기를 원할때 사용하면 된다.
for index in 1...5 {
println("\(index) times 5 is \(index * 5)")
}
// 1 times 5 is 5
// 2 times 5 is 10
// 3 times 5 is 15
// 4 times 5 is 20
// 5 times 5 is 25
- Half-Closed Range Operator(a..<b)
Half-Closed Range Operator는 Closed Range Operator와는 달리 b값을 제외할 때 사용합니다.
let names = ["Anna", "Alex", "Brian", "Jack"]
let count = names.count
for i in 0..<count {
println("Person \(i + 1) is called \(names[i])")
}
// Person 1 is called Anna
// Person 2 is called Alex
// Person 3 is called Brian
// Person 4 is called Jack
* Half-Closed Range Operator는 주로 배열에 많이 사용된다. 위 예제와 같이 배열의 인덱스와
count값(4)이 제외된 것이 일치하기 때문이다. (names 인덱스는 0에서 3까지)
- 연산자 우선순위
우선순위 |
연산자 종류 |
연산자 |
1 |
단항 연산자 |
!, ~, ++, -- |
2 |
곱셈, 나눗셈 연산자 |
*, /, % |
3 |
덧셈, 뺄셈 연산자 |
+, - |
4 |
시프트 연산자 |
<<, >> |
5 |
비교 연산자 |
<, <=, >, >= |
6 |
비교 연산자 |
++, != |
7 |
비트 연산자 |
& |
8 |
비트 연산자 |
^ |
9 |
비트 연산자 |
| |
10 |
논리 연산자 |
&& |
11 |
논리 연산자 |
|| |
12 |
삼항 연산자 |
? : |
13 |
대입 연산자 |
= , +=, -+, *=, /=, %= |
14 |
대입 연산자 |
>>=, <<=, &=, ^=, |= |
'Smart Device > Swift' 카테고리의 다른 글
Swift String (0) | 2014.06.11 |
---|---|
Swift Subscript (0) | 2014.06.11 |
Swift Objects and Classes #1 (0) | 2014.06.09 |
Swift 함수 #5 closure expression (0) | 2014.06.09 |
Swift 함수 #4 - 반환값과 인수의 기능을 하는 함수 (0) | 2014.06.09 |