딕셔너리 선언하기
Coddy Swift 여정의 로직 및 흐름 섹션에 포함된 레슨 — 56개 중 12번째.
딕셔너리는 키/값 쌍의 정렬되지 않은 컬렉션입니다. 딕셔너리를 생성할 때 키 타입과 값 타입이 모두 고정됩니다.
var prices: [String: Int] = [
"apple": 1,
"bread": 3,
"milk": 4
]
print(prices.count) // 3
print(prices.isEmpty) // false타입 어노테이션 [String: Int]은 "키는 String이고, 값은 Int입니다"라고 읽힙니다. Swift는 보통 리터럴로부터 이를 추론할 수 있지만, 직접 작성하면 빈 초기화 구문을 명확하게 만들 수 있습니다:
var counts: [String: Int] = [:]
// 반면 빈 배열은 타입이 명시되어야 합니다존재하는 키를 읽으면 값을 반환합니다. 존재하지 않는 키를 읽으면 nil을 반환하며, 다음 레슨에서 그 부분을 다룹니다.
챌린지
쉬움세 줄의 입력을 읽으십시오: 이름(name), 국가(country), 그리고 정수형 나이(age). String 키와 읽어 들인 값들로 구성된 person이라는 단일 딕셔너리를 생성하십시오 (나이는 Int 타입을 유지해야 하므로, 이질적인 값 타입을 사용해야 합니다. 힌트를 참조하세요).
다음 세 줄을 출력하십시오:
- 딕셔너리에 포함된 항목의 개수
- 서브스크립트 접근을 사용한
name=<value> - 서브스크립트 접근을 사용한
country=<value>
출력 가능한 형식을 사용하십시오: 딕셔너리 값을 Any 타입으로 읽을 때, 출력하기 전에 강제 언래핑(force-unwrap)을 수행하십시오.
입력이 Alice / UK / 30인 경우, 출력은 다음과 같습니다:
3
name=Alice
country=UK치트 시트
딕셔너리는 고정된 키와 값 타입을 가진 키/값 쌍을 저장합니다:
var prices: [String: Int] = [
"apple": 1,
"bread": 3,
"milk": 4
]
print(prices.count) // 3
print(prices.isEmpty) // false명시적 타입 어노테이션을 사용하여 빈 딕셔너리를 생성합니다:
var counts: [String: Int] = [:]여러 가지 타입이 섞인 값(혼합 타입)을 사용하려면 [String: Any]를 사용하세요:
var person: [String: Any] = [
"name": "Alice",
"age": 30
]직접 해보기
let name = readLine()!
let country = readLine()!
let age = Int(readLine()!)!
// TODO: person이라는 [String: Any]를 생성하고, count, name, country를 출력하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.