👨🏻‍💻iOS 공부/Swift 기본기 다지기

[ETC_004] 데이터 타입 고급

728x90
반응형

데이터 타입 고급

컴파일 시 확인하는 것을 “타입 확인”이라고 한다.

앞서 말했던 타입 추론의 경우, 알아서 컴파일러가 데이터의 타입을 예측한다.

알아서 “Charming”과 같은 String 타입을 입력하면 문자열로, 100과 같은 숫자열을 입력하면 Int타입으로 예측한다.


  • 타입 별칭
typealias MyInt = Int

위 처럼 먼저 구성을 해두면,

let age: MyInt = 100

위 처럼 정수형 타입을 사용할 수 있습니다.


  • 튜플

스위프트 튜플은 파이썬 튜플과 유사하다.

var person: (String, Int, Doble) = (Charming,100,176.5)

위 처럼, 데이터 타입을 선택한 후, 값을 기입해주어 사용할 수 있다.


  • 컬렉션형

튜플 이외에도, 컬렉션 타입으로는 배열, 딕셔너리, 세트 타입등이 있다.


  • 배열

let으로 선언시, 변경이 되지 않고, var로 선언시 변경이 가능하다.
배열은 아래처럼 사용이 가능하다.

var names: Array = [cha,min]

비슷하게로는

var names: [String] = [Cha,min] 

위 처럼도 가능하다.

var emptyArray: [Any] = Any

위 처럼 빈 배열을 만들 수 있고,

var emptyArray: [Any] = Array()

위 처럼도 가능하다.

배열의 타입을 정확히 명시해줬다면

var emptyArray: [Any] = []

도 가능하다!

인덱스를 통해 배열에 접근이 가능하며, 파이썬처럼 인덱스는 0부터 시작한다!
index(:of) 메서드를 사용하여 해당 요소의 인덱스를 알아낼 수 있다.
맨 뒤에 요소를 추가하고 싶다면, append(_:) 메서드를 사용하면 된다.

names.append(contentsOf: [A,B])

를 하면 각각 요소들이 추가된다.


  • 딕셔너리

파이썬과 마찬가지로 키와 값으로 매칭이되는 타입이다.

var name: Dictionary = Dictionary()

위를 사용하여 빈 딕셔너리를 생성할 수 있댜.


  • 세트

세트는 같은 타입의 데이터를 순서 없이 하나의 묶음으로 저장하는 형태의 컬레션 타입이다.

var names: Set = Set()

위를 통해 빈 세트를 생성할 수 있습니다.
우측의 Set 대신 []도 사용 가능합니다.

새로운 요소 추가시 insert(:), 삭제시 remove(:) 메서드를 사용합니다!

또한 파이썬처럼 sorted() 메서드를 사용하여 정렬된 배열을 반환할 수 있습니다.

randomElement(), shuffled()를 사용하여 순서를 섞을 수도 있습니다.


  • 열거형

연관된 항목들을 묶어서 표현할 수 있는 타입입니다.

기본 열거형은 enum으로 사용이 가능합니다.

enum school {
    case primary
    case elementary
}

각 항목들을 생성할 수 있습니다.

순환 열거형 사용시 indirect를 사용하면 됩니다.

enum name {
    indirect //~~
}


728x90
반응형