Menu
Coddy logo textTech

딕셔너리 선언하기

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을 반환하며, 다음 레슨에서 그 부분을 다룹니다.

challenge icon

챌린지

쉬움

세 줄의 입력을 읽으십시오: 이름(name), 국가(country), 그리고 정수형 나이(age). String 키와 읽어 들인 값들로 구성된 person이라는 단일 딕셔너리를 생성하십시오 (나이는 Int 타입을 유지해야 하므로, 이질적인 값 타입을 사용해야 합니다. 힌트를 참조하세요).

다음 세 줄을 출력하십시오:

  1. 딕셔너리에 포함된 항목의 개수
  2. 서브스크립트 접근을 사용한 name=<value>
  3. 서브스크립트 접근을 사용한 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를 출력하세요
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

로직 및 흐름의 모든 레슨