반응형
순서단위인 Array와 달리 의미단위로 찾을때 유용하다.
Array는 순서기반으로 찾고
Dictionary는 의미기반으로 찾음 ex) 학생들의 점수관리
import UIKit
//
//var scoreDic: [String:Int] = ["Jason": 80, "Jay": 95, "Jake":90]
////dictionary는 두가지 타입을 정의한다. [key: Value]
//
////var scoreDic: Dictionary<String, Int> = ["Jason": 80, "Jay": 95, "Jake":90]
//scoreDic["Jason"]
//scoreDic["Jay"]
//scoreDic["Jerry"] //nil
//
////있을수도 없을 수도 있기 때문에 안정적으로 가져올려면 옵셔널 바인딩으로
//if let score = scoreDic["Jason"] {
// score //80
//} else {
// //...score없음
//}
//
//// -----> 컬렉션 공통 프로퍼티
//scoreDic.isEmpty //false
////scoreDic = [:]
////scoreDic.isEmpty //true
//scoreDic.count
//
////기존 사용자에 새로운 값을 할당할때
//scoreDic["Jason"] = 99
//scoreDic //["Jake": 90, "Jay": 95, "Jason": 99]
//// 사용자 추가
//scoreDic["Jack"] = 100
//scoreDic //["Jack": 100, "Jake": 90, "Jay": 95, "Jason": 99]
//// 사용자 제거
//scoreDic["Jack"] = nil
//scoreDic //["Jay": 95, "Jake": 90, "Jason": 99]
//
//
//
////For Loop 반복적으로 사용가능
//
//for (name, score) in scoreDic {
// print("\(name), \(score)")
//}
///*
// Jason, 99
// Jake, 90
// Jay, 95
//*/
//
//for key in scoreDic.values {
// print(key)
//}
///*
// Jason
// Jay
// Jake
//*/
//
//for key in scoreDic.values {
// print(key)
//}
///*95
// 99
// 90
//*/
// **도전과제**
//1. 이름, 직업, 도시에 대해서 본인의 딕셔너리 만들기
//2. 여기서 도시를 부산으로 업데이트 하기
//3. Dictionary를 받아서 이름과 도시를 프린트하는 함수 만들기
//---->1번문제
var AccountInfo: [String:String] = ["name":"Gikko", "job": "Teacher", "city":"Seoul"]
print(AccountInfo) //["city": "Seoul", "name": "Gikko", "job": "Teacher"]
//---->2번문제
AccountInfo["city"] = "Busan"
//---->3번문제
// 내가 푼것.
//func printName() {
// print(AccountInfo["name"])
//}
//printName() // 옵셔널로 결과값이 등장 -> 옵셔널 바인딩 사용하기
func printNameAndCity(dic:[String: String]) {
if let name = dic["name"], let city = dic["city"] {
// print("\(name), \(city)") //Gikko, Busan
print(name, city) //Gikko Busan
} else {
print("---> Cannot find")
}
}
printNameAndCity(dic: AccountInfo) //Gikko Busan
반응형
'모바일앱 > Swift' 카테고리의 다른 글
Struct만들기 도전과제 (0) | 2021.10.12 |
---|---|
구조체와 클래스의 차이점 (0) | 2021.10.11 |
Collection - Closure, Capturing Values (0) | 2021.10.10 |
Collection - Set (0) | 2021.10.10 |
Collection - Array (0) | 2021.10.09 |
옵셔널 도전과제 (0) | 2021.10.08 |
옵셔널 (0) | 2021.10.07 |
함수의 고급기능(1. 오버로드 2. In-out parameter 3. 함수안에 함수를 넣기) (0) | 2021.10.06 |