티스토리 뷰

언어 소개 - Swift

Swift - 고급 데이터 타입

최초의 펭귄 2018. 5. 15. 12:30

안녕하세요. 오늘은 Swift에 있는 특이한 데이터 타입에 대해 소개하겠습니다.
(Swift에만 있는 타입이 아니라 요즘언어에 있는 데이터 타입을 소개합니다!)

타입 별칭

스위프트에서 제공하는 타입이나 사용자가 만든 데이터 타입에게 별칭을 부여할 수 있습니다.

typealias MyDic = [String : Int]
typealias MyJson = [[String : [String]]]
// 위처럼 반복하여 입력하기 귀찮은 긴 데이터 타입에 간단하게 별칭을 정할 수 있습니다.

튜플

지정된 데이터의 묶음으로 프로그래머가 마음대로 만들 수 있는 타입입니다.
데이터의 갯수 제한 없이 데이터를 묶을 수 있습니다.

var person: (String, Int, Double) = ("이름", "17", "180.6")
// String, Int, Double을 갖는 튜플 타입

person.0; person.1; person.2
// 인덱스를 이용하여 값에 접근 할 수 있습니다.

// 각 요소에 이름을 붙일 수도 있습니다.
var person2: (name: String, age: Int, height: Double)
= ("이름", "17", "180.6")

// 인덱스 대신 이름으로 접근이 가능합니다.
person2.name; person2.age; person2.height

컬렉션 타입

  • 배열 : 데이터를 일렬로 순서대로 저장하는 형태의 데이터 타입이며
    Swift의 배열은 링크드리스트입니다.

    let temp1 = Int // 또는 Array(), 또는 temp1: [Int] = [] let nums: [Int] = [1, 2, 3, 4, 5, 6, 7] var name: [String] = ["name1", "name2"]

    name.append("name3") // append를 통해 데이터를 추가 할 수 있으며 name.count // 배열안의 데이터의 갯수를 반환 받습니다. nums.isEmpty // 배열이 비었는지 확인 할 수 있습니다.

또한 범위연산자를 통해 배열을 조작할 수 있습니다.

let nums = [1, 2, 3, 4, 5, 6]
nums[1 ... 3] = [3, 4, 5]
print(nums) // 3, 4, 5, 5, 6
print(nums[3 ... 5]) // 5, 5, 6
  • 딕셔너리 : 순서 없이 키와 값이 쌍으로 구성되는 데이터 타입입니다.
    키는 유일하여야 하며 값은 중복되어도 상관없습니다.
    let temp1 = [String : Int]()
    // 또는 Dictinary<String, Int>(), 또는 temp1: [String : Int] = []
    var dic: [String : Int] = ["name" : 100, "name2" : 200]
    dic.count // 딕셔너리 값의 갯수를 반환 받습니다.
    dic.isEmpty // 딕셔너리가 비었는지 확인 할 수 있습니다.

    dic["name3"] = 300 // 이러한 형태로 값을 추가하며
    dic["name"] = 1000 // 변경할 수 있습니다.

    print(dic["name3"]) // name3의 값을 반환 받을 수 있으며
    print(dic["name4"]) // 값이 없다면 nil을 반환합니다.
  • 세트 : 순서없이 값이 중복되지 않는 데이터 타입입니다.
    // 배열과 딕셔너리처럼 축약형이 없습니다.
    let temp1: Set<Int> = [] // 또는 temp1 = Set<Int>()
    let set: Set<Int> = [1, 2, 3, 4, 5]

    print(type(of: set)) // Set의 타입을 추론하면 Array로 출력합니다.
    set.insert(5) // set에 데이터를 추가하며
    set.remove(3) // set에서 데이터를 삭제할 수 있습니다.  
                  // 해당 데이터가 없으면 nil을 반환합니다.
  • 열거형 : 연관된 항목을 설정하여 정의해준 항목 이외의 값을 제한하도록 만드는 데이터 타입입니다.
enum School{
    case primary
    case elementary
    case middle
    case high
    case college
}

let school: School = School.high // .high로 표현할 수 있습니다.

enum Temp{
    case hello = "hello"
    case nice
    case hey
}

print(Temp.nice) // nice

열거형에는 값을 넣을 수 있으며 열거형 이름 오른쪽에 명시하여 줍니다.
일부분만 원시 값을 준다면 나머지는 Swift가 알아서 값을 넣습니다.
정수형이면 첫 항목을 기준으로 1씩 늘어나는 값을 갖게 되며
문자열이면 그 항목의 이름을 갖게 됩니다.

enum School{
    case primary = "primary"
    case elementary
    case middle
    case high
    case college
}

let temp = School(rawValue: "high") // .high
let temp2 = School(rawValue: "olleh") // nil

이처럼 항목의 값을 통해 열거형을 만들 수 있으며 값이 존재하지 않은 값이라면 nil을 반환합니다.

이번시간은 여기까지 입니다.
다음시간에 연산자에 대한 소개를 하는 시간을 가지겠습니다.
질문은 아래 댓글에 남겨주시면 최선을 다해 답변해드리겠습니다.

감사합니다

'언어 소개 - Swift' 카테고리의 다른 글

Swift - 흐름 제어  (0) 2018.05.29
Swift - 함수  (0) 2018.05.28
Swift - ARC  (0) 2018.05.25
Swift - 사용자 정의 연산자  (0) 2018.05.21
Swift - 애플의 새 언어  (0) 2018.05.12
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday