데이터 타입 고급
[목차]
- 타입 별칭(typealias)
- 튜플(Tuple)
- 컬렉션 타입
- 배열(Array)
- 딕셔너리(Dictionary)
- 세트(Set)
1. 타입 별칭(typealias)
이미 존재하고 있는 데이터 타입에 임의로 별칭을 부여해 사용할 수 있다. (기존 데이터 타입, 별칭 데이터 타입 모두 사용 가능)
typealias MyInt = Int
typealias YourInt = Int
let age: MyInt = 100
var year: YourInt = 2080
year = age
let month: Int = 7
2. 튜플(Tuple)
개발자 마음대로 만드는 타입. 타입명은 따로 없어 일정 타입의 나열해서 튜플 타입을 생성한다.
[코드 1 - 튜플 기본]
var person: (String, Int, Double) = ("Jabba", 39, 172.2)
// 값은 배열처럼 인덱싱을 통해 꺼내 쓸 수 있다.
print("이름: \(person.0), 나이: \(person.1), 키: \(person.2)")
// 입력도 가능하다.
person.0 = "Lee"
person.1 = 38
person.2 = 175
[코드 2 - 튜플 요소에 이름 붙이기]
var person: (name: String, age: Int, height: Double) = ("Jabba", 39, 172.2)
// 요소의 이름을 통해서 값을 꺼내 쓸 수 있다.
print("이름: \(person.name),나이: \(person.age),키: \(person.height)")
// 입력도 당연히 가능
person.name = "Lee"
person.age = 38
person.height = 175
[코드 3 - 튜플 타입에 별칭(typealias) 붙여 사용하기]
typealias PersonTuple = (name: String, age: Number, height: Double)
let jabba: PersonTuple = ("Jabba", 39, 172.2)
let woon: PersonTuple = ("Woon", 29, 156.1)
print("이름: \(jabba.name),나이: \(jabba.age),키: \(jabba.height)")
print("이름: \(woon.name),나이: \(woon.age),키: \(woon.height)")
3. 컬렉션 타입
3.1 배열(Array)
주의 : 스위프트의 Array
스위프트의 배열은 C 언어 또는 JAVA의 배열과는 다른 형태의 타입이다. 스위프트의 Array는 Linked-List의 형태이다.
[주요 프로퍼티 1]
프로퍼티 | 설명 |
---|---|
array.isEmpty | 비어있는 배열인지 확인 |
array.count | 배열 안 요소의 개수 확인 |
[코드 - 배열의 선언과 생성]
// 배열 생성
var names: Array<String> = ["Jabba", "Woon", "Kim"]
// Array<Int> == [Int]
var heights: [Int] = [172, 180, 182]
// 빈 배열 생성
var emptyArray: [Any] = [Any]()
var emptyArray2: Array<Any> = Array<Any>()
var emptyArray3: [Any] = []
print(emptyArray.isEmpty) // true 출력
print(names.count) // 3 출력
[주요 프로퍼티 2]
프로퍼티 | 설명 |
---|---|
array.first | 배열의 맨 처음 요소 값을 리턴한다. |
array.last | 배열의 마지막 요소 값을 리턴한다. |
array.index(of: 요소 값) | 요소 값의 인덱스를 리턴한다. |
array.append(_:) | 맨 뒤에 요소를 추가한다. |
array.insert(_:at:인덱스) | 중간에 요소를 추가한다. |
array.remove(at:인덱스) | 인덱스에 해당하는 요소 값이 삭제된 후 리턴한다. |
array.removeFirst() | 가장 처음 요소 값을 삭제한다. |
array.removeLast() | 가장 마지막 요소 값을 삭제한다. |