본문 바로가기
Smart Device/Swift

Swift 연산자

by 언덕너머에 2014. 6. 10.

연산자에는 단항연산자, 이항연산자, 삼항연산자가 있다.

 - 단항연산자

  단항 연산자는 '-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