Array
: 동일한 타입의 요소들을 저장하는 순서가 있는 컬렉션. 특정 요소의 인덱스를 사용하여 접근할 수 있고 수정할 수 있으며 배열의 크기는 동적으로 조절됩니다.Dictionary
: 순서를 정의하지 않고 같은 타입의 key와 같은 타입의 value를 저장하는 컬렉션. key는 고유(unique)해야하므로 중복을 허용하지 않으며, 실물 사전을 찾는 것처럼 순서가 아닌 식별자 기준으로 값을 찾을 때 Dictionary를 사용합니다.Set
: 순서를 정의하지 않고 동일한 타입의 값을 저장하는 컬렉션. 세트 안에 있는 모든 값은 고유(unique)해야하므로 중복을 허용하지 않습니다. 항목의 순서가 중요하지 않거나 항목이 한 번만 표시되도록 해야 하는 경우 사용합니다.Dictionary
에 등록하세요.["001": "르탄이", "002": "배캠"]
var students:[String: String] = [:]
students["001"] = "르탄이"
students["002"] = "배캠이"
여기서 특정값의 이름만 데려오고 싶다면
print(students["002"]!)를 마지막줄에 넣어주면
Set
으로 관리하세요.["수학", "과학", "영어"]
var subjects: [String: Set<String>] = [:]
subjects["르탄이"] = ["수학", "과학", "영어"]
subjects["배캠이"] = ["수학", "역사"]
Array
로 관리하세요.[80, 90, 85]
과목추가
subjects["르탄이"]?.insert("역사")
과목삭제
subjects["배캠이"]?.remove("역사")
성적관리
var grades: [String: [String: [Int]]] = [:]
grades["르탄이"] = ["수학": [90, 85], "과학": [88], "영어": [70]]
grades["배캠이"] = ["수학": [75], "역사": [80]]
성적추가
grades["르탄이"]?["수학"]?.append(95)
성적삭제
grades["배캠이"]?["수학"]?.removeLast()
func calculateAverage(for student: String, subject: String) -> Double? {
guard let studentGrades = grades[student], let subjectGrades = studentGrades[subject] else {
return nil
}
let total = subjectGrades.reduce(0, +)
return Double(total) / Double(subjectGrades.count)
}
if let average = calculateAverage(for: "Alice", subject: "Math") {
print("Alice's Math average: \(average)")
} else {
print("No grades found for Alice in Math.")
}