ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Swift - Data Type #Collections
    기술 관련/Apple Swift 2014. 8. 8. 19:01
    Array
    • Array에 대한 타입은 Array<SomeType> 형태로 선언한다
    • 그러나 간략하게 [SomeType] 형태로 쓸 수 있다
    • 문자열에 대한 Array
      • var list: [String] = ["A", "B", "C"]
    • 당연한 이야기지만 let을 이용하는 경우 상수가 되며 편집 불가 (immutable) 상태가 된다
    • 같은 Type의 Array는 서로 병합이 가능하다
      • list += ["d", "e"] + ["f"] 

    Array 초기화
    • Array를 생성 시 Type 정보화 함께 초기화를 할 수 있다
      • var someInts = [Int]()
    • 이렇게 선언할 경우 item count가 0인 정수형 Array가 생성된다
    • 동일한 형태로 다음과 같이 선언 할 수도 있다
      • var someInts:[Int] = []
    • Array 타입은 특정 크기와 값으로 초기화 하는 기능도 제공한다
      • var threes = [Int](count:3, repeatedValue: 1)
    • 이럴 경우 1로 3개의 item을 가진 정수형 Array가 생성된다

    Dictionary
    • Dictionary에 대한 타입은 Dictionary<KeyType, ValueType> 형태로 선언한다
    • 그러나 간략하게는 [KeyType: ValueType]으로 쓸 수 있다
      • var dict:[String: String] = ["ICN":"Incheon Airport", "LAX":"Los Angeles"]
      • var airports = ["ICN":"Incheon Airport", "LAX":"Los Angeles"]

    Dictionary를 이용한 반복문
    • Dictionary는 Array와 같이 for-in 문과 같이 사용 할 수 있고 각 Item에 대해 (key, value) 형태를 쓸 수 있다.
      • for (code, name) in airports {
      •     println("\(code):\(name)")
      • }
    • key 또는 value만 둘 중 하나만 사용한다면 Underscore ('_') 를 정의해서 사용 할 수도 있으며
      • for (code, _) in airports {
      • }
    • keys, values와 같이 별도 property를 이용할 수도 있다.
      • for code in airports.keys 
      • for name in airports.values

    Dictionary 초기화
    • Dictionary를 생성 시 타입 정보와 함께 생성 할 수 있다
      • var namesOfInts = [Int: String]()
    • 생성된 dictionary를 모두 없애는 경우 다음과 같이 표현할 수 있다
      •  namesOfInts = [:]
    • Dictionary의 KeyType으로 사용되려면 해당 타입은 Hashable 프로토콜을 따라야 한다
    • 참고로, Swift에서 제공하는 모든 기본 타입 (String, Int, Double 등)은 모두 Hashable 이다.
    • Hashable은 hasValue property를 가지고 있으니 custom type을 생성할 경우 이를 주의해야 한다


    '기술 관련 > Apple Swift' 카테고리의 다른 글

    Swift - Function  (0) 2014.08.11
    Swift - Control Flow  (0) 2014.08.11
    Swift - String  (0) 2014.08.08
    Swift - Operators  (0) 2014.08.08
    Swift - Data Type #Tuple  (0) 2014.08.08

    댓글

Designed by Tistory.