티스토리 뷰

출처

http://kka7.tistory.com/4





할당 연산자 ( = )

할당 연산자는 a 의 값을 b 의 값으로 초기화 하거나 갱신한다.

우측이 어려 값을 갖는 튜플이면 한번에 여러개의 상수나 변수 요소들로 분해할 수 있다.


let (x, y) = (1, 2)


Objective-C 와 다르게

Swift 에서의 할당 연산자는 값을 반환하지 않는다.


if x = y {

    // This is not valid, because x = y does not return a value. 

}


이 기능은 할당 연산자가 우연치 않게 동등 연산자로 사용되는 것을 막아주기 위해 도입되었다.




산술 연산자 ( + , - , * , / )

Objective-C 와는 다르게 Swift 는 기본적으로 overflow 값을 허용하지 않는다.

Swift 의 오버플로우 연산자 (&+, &*, ...) 를 통해 동작 값을 선택할 수 있다.


덧셈 연산자는 string 연결을 지원한다.


1 + 2 // equals 3 

5 - 3 // equals 2 

2 * 3 // equals 6 

10.0 / 2.5 // equals 4.0

"hello, " + "world" // equals "hello, world"




비교연산자 ( ==, != , === , !==, <= , ... )

두 객체 instance 가 같은지 두 객체의 참조까지 모두 참고하여
테스트 할 때 사용하는 고유한 2개의 연산자 (===, !==) 를 제공한다.

===, !== 는 Object 만 가능하다. (AnyObject 가능 / String, Int ... struct 는 불가능)

let name = "world"


if name == "world" {

    print("hello, world")

} else {

    print("I'm sorry \(name), but I don't recognize you")

}


튜플의 경우 왼쪽에서 오른쪽으로, 한번에 한 값씩, 
두 개의 값이 같지 않을 때까지 비교한다.


(1, "zebra") < (2, "apple") // true because 1 is less than 2 

(3, "apple") < (3, "bird") // true because 3 is equal to 3, and "apple" is less than "bird" 

(4, "dog") == (4, "dog") // true because 4 is equal to 4, and "dog" is equal to "dog"





삼항 조건 연산자

let contentHeight = 40

let hasHeader = true

let rowHeight = contentHeight + (hasHeader ? 50 : 20)


기본적인 사용법은 동일하지만,
Objective-C 에서 지원되던 " ?: " 은 지원되지 않는다.




Nil 결합 연산자 (Nil-Coalescing Operator)

nil 결합 연산자 ( a ?? b ) 는 옵셔널 a 에 값이 있으면 

언래핑하고 a 가 nil 이면 기본값 b 를 반환한다.

아래 조건과 동일하다.


a != nil ? a! : b


표현식 a 는 항상 옵셔널 타입이다.

표현식 b 는 a 에 저장된 타입과 같아야한다.


let defaultColorName = "red"

var userDefinedColorName: String?   // defaults to nil

var colorNameToUse = userDefinedColorName ?? defaultColorName   //"red"






범위 연산자

폐쇄된 범위 연산자 ( ... )

for index in 1...5 {

    print("\(index) times 5 is \(index * 5)")

}




반 개방 범위 연산자 ( ..< )

let names = ["Anna", "Alex", "Brian", "Jack"]

let count = names.count


for i in 0..<count {

    print("Person \(i + 1) is called \(names[i])")

}




공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함