종류: Array, Dictionary, Set
# 생성
var array: Array<Int> = Array<Int>()
var array2: Array<Int> = [Int]()
var array3: [Int] = []
# 추가
array.append(1)
# 제거
array.remove(at: 0) // index = 0 요소 제거
array.removeLast() // 마지막 요소 제거
array.removeAll() // 모든 요소 제거
# 멤버 소유 여부
array.contains(1) // true
array.contains(100) // false
# 개수
array.count
# 생성
var dictionary: Dictionary<String, Any> = [String: Any]()
var dictionary2: [String: Any] = [:]
# 추가
dictionary["example1"] = "EXAMPLE"
dictionary["example2"] = 1
# 제거
dictionary.removeValue(forKey: "example1")
dictionary["example2"] = nil
let initializedDictionary: [String: String] = ["name": "eunji", "gender": "female"]
let someValue: String = initializedDictionary["name"] // ERROR!
# 생성
var set: Set<Int> = Set<Int>()
// 추가적인 축약 문법 존재 X
# 추가
set.insert(1)
set.insert(1)
// 아무리 1을 여러번 넣어줘도 1은 1개만 존재
# 제거
set.remove(1)
set.removeFirst()
# 요소 유무 확인
set.contains(1) // true
set.contains(100) // false
# 개수
set.count
# 집합 연산
let setA: Set<Int> = [1, 2, 3]
let setB: Set<Int> = [3, 4, 5]
let union: Set<Int> = setA.union(setB) // 합집합
let sortedUnion: [Int] = union.sorted() // 집합 정렬
let intersection: Set<Int> = setA.intersection(setB) // 교집합
let subtracting: Set<Int> = setA.subtracting(setB) // 차집합
enum Weekday {
case mon
case tue
case wed
case thu, fri, sat, sun
}
var day1 = Weekday.mon
var day2: Weekday = .tue
enum Fruit: Int {
case apple = 0
case grape = 1
case orange
}
enum School: String {
case elementary = "초등"
case middle = "중등"
case high = "고등"
case university
}
print(Fruit.orange.rawValue) // 2
print(School.university.rawValue) // university
let apple: Fruit = Fruit(rawValue: 0) // ERROR
let apple: Fruit? = Fruit(rawValue: 0) // OK
if let orange: Fruit = Fruit(rawValue: 5) {
print(" 존재!")
} else {
print("존재하지 않음.")
}
enum Family SchoolDetail {
case elementary(name: String)
case middle(name: String)
case high(name: String)
}
let yourMiddleSchool = SchoolDetail.middle(name: "경원중")
print(yourMiddleschool) // 경원중
enum Family SchoolDetail {
case elementary(name: String)
case middle(name: String)
case high(name: String)
func getName() -> String {
switch_self {
case .elementary(let name):
return name
case let .middle(name):
return name
case .high(let name):
return name
}
}
}
let yourMiddleSchool = SchoolDetail.middle(name: "경원중")
print(yourMiddleschool.getName()) // 경원중
switch day {
case .mon, .tue, .wed, .thu:
print("시간 안 가")
case .fri:
print("불금!")
default:
print("주말")
}