1️⃣ 배열 (Array)
var beatles = ["John", "Paul", "George", "Ringo"]
let numbers = [4, 8, 15, 16, 23, 42]
- 배열은 그룹화를 수행한다.
- 배열은 0부터 인덱스를 센다.
print(beatles[0]) // John
print(numbers[1]) // 8
출력은 인덱스를 이용한다.
var scores = Array<Int>()
scores.append(100)
scores.append(80)
scores.append(85)
print(scores[1]) //80
append()를 통해 배열에 새 항목을 추가할 수 있다.
var albums = [String]()
Array<String> 대신에 [String]을 사용할 수 있다.
remove(at: 인덱스) | 특정 인덱스에서 하나의 항목을 제거한다. |
removeAll() | 모든 항목을 제거한다. |
contains("찾는 값") | Array와 Set에서 찾는 값에 대하여 Bool을 반환한다. 값이 있다면 true, 없다면 false를 반환 |
sorted() | 배열을 오름차순(사전순)으로 정렬한다 |
2️⃣ Dictionaries
let employee = [
"name": "Taylor Swift",
"job": "Singer",
"location": "Nashville"
]
- Dictionary는 세부 데이터를 더 체계화하고 명확하게 저장할 수 있다.
- 왼쪽의 문자열의 Key 라고 하며 오른쪽은 value 라 한다.
print(employee["name"]) //Taylor Swift
print(employee["job"]) //Singer
print(employee["location"]) //Nashville
- Key값을 통해 value를 불러올 수 있다.
var heights = [String: Int]()
heights["Yao Ming"] = 229
- 저장하고 싶은 명시적 유형을 사용해 빈 Dictionary를 만들고 키를 설정할 수 있다.
var archEnemies = [String: String]()
archEnemies["Batman"] = "The Joker"
archEnemies["Superman"] = "Lex Luthor"
archEnemies["Batman"] = "Penguin"
//최종적으로 Batman은 Penguin 이다.
- 각 항목은 하나의 특정 Key 값에 대응해야 하므로 중복을 허용하지 않는다.
- 마지막으로 지정한 값이 저장된다.
🤔 Key가 존재하지 않는 경우는 어쩌지?
print(employee["name", default: "Unknown"])
print(employee["job", default: "Unknown"])
print(employee["location", default: "Unknown"])
위와 같은 방법으로 기본값을 제공할 수 있다.
3️⃣ 집합 ( Set )
let snack = Set(["Cookie", "Jelly", "Popcorn"])
위와 같은 코드로 선언 할 수 있다.
var snack = Set<String>()
snack.insert("Cookie")
snack.insert("Jelly")
snack.insert("Popcorn")
값을 추가할 때는 insert()로 추가한다.
contains("찾는 값") | Array와 Set에서 찾는 값에 대하여 Bool을 반환한다. 값이 있다면 true, 없다면 false를 반환 |
🤔 Set과 Array의 차이점?
- Array는 순서가 있고 중복을 포함한다.
- Set은 순서가 없고 중복을 포함할 수 없다.
- Set은 순서가 없기 때문에, 빠른 검색을 위해 개체를 최적화된 순서로 저장한다. 즉, 검색에는 Set이 유리하다.
4️⃣ Enums (enumeration 열거형)
enum Weekday {
case monday
case tuesday
case wednesday
case thursday
case friday
}
enum Weekday {
case monday, tuesday, wednesday, thursday, friday
}
- enum은 위와 같이 2가지 방법으로 작성할 수 있다.
- 실수로 잘못 입력하거나 등의 오류를 방지할 수 있다. 즉, 효율적이고 더 안전하게 값을 관리할 수 있다.
- 이미 지정된 범위가 있는 값들을 다룰 때 사용하기 적합하다. ex) 비밀번호는 Array에 적합, 1년의 달은 enum에 적합
var day = Weekday.monday
day = Weekday.tuesday
day = Weekday.friday
day = .tuesday
day = .friday
- 이전에 선언한 enum을 위와 같은 방법으로 불어올 수 있다.
🤔 왜 Swift는 enum이 필요할까?
각 방향 동, 서, 남, 북을 코드로 그룹화 해보자.
var Direction = [north, south, east, west]
위 코드와 같이 배열로 선언할 수 있다.
그러나 매번 north의 인덱스가 0이고, east의 인덱스가 2인지 기억할 수 있는가?
enum Direction {
case north, south, east, west
}
enum을 사용해 이런 번거로움을 줄일 수 있다.
'iOS > SwiftUI' 카테고리의 다른 글
[Day 5] 조건문 : if, switch, and the ternary operator (0) | 2023.08.04 |
---|---|
[Day 4] Type annotations (0) | 2023.08.03 |
[Day 2] 부울, 문자열 결합 (0) | 2023.08.01 |
[Day 1] 변수와 상수, 문자열, 숫자 (0) | 2023.07.31 |
[XCODE] MARK 사용하기 (0) | 2023.07.30 |