-
[Swift] Dictionary κ°λ¨ μ 리iOS/π Swift 2021. 3. 16. 16:18
λ€λ₯Έ μΈμ΄μμ λ§μ΄ λ΄μκΈ° λλ¬Έμ μ΅μνλ€κ³ μκ°νμμ§λ§,
μ€μ λ‘ μκ³ λ¦¬μ¦ λ¬Έμ λ₯Ό ν λ μ¬μ©λ²μ΄ μ λ μ€λ₯΄μ§ μμμ κ°λ΅νκ² μ 리νμμ΅λλ€!
λ μμΈν λ΄μ©μ μ€μννΈ κ³΅μλ¬Έμ μμ 곡λΆνμλ©΄ λ©λλ€πΆ
νΉμ§
1. ν΄μ¬ ꡬ쑰
key μ ν΄λΉνλ λ°μ΄ν°λ₯Ό ν΄μ±νμ¬ 'identifier' λ‘ μ¬μ©ν©λλ€.
key λ₯Ό ν΄μ±νκΈ° λλ¬Έμ ν΄λΉ λ°μ΄ν°μ νμ μ Hashable νλ‘ν μ½μ μ±ννκ³ μμ΄μΌ ν©λλ€.
2. νλμ element λ Key-Value μμΌλ‘ ꡬμ±λμ΄ μμ΅λλ€.
νλμ value λ unique ν key κ°κ³Ό μ°κ²°λμ΄ μμ΅λλ€.
3. μμκ° μμ΅λλ€.
λ°λΌμ for-in μν μ νμ κ°μ μμλ‘ μννλ€λ κ²μ 보μ₯νμ§ μμ΅λλ€.
ν΄κ²°λ² : key λ value λ₯Ό μνλ κ·μΉμΌλ‘ μ λ ¬νμ¬ μνν©λλ€.
κΈ°λ³Έ λ¬Έλ²
/* 1 */ var myDict1: Dictionary<Int, Int> = [:] /* 2 */ var myDict2: [Int:Int] = [:] /* 3 */ var myDict3 = [Int:Int]() /* 4 */ var myDict4 = [1:1, 2:2, 3:3]
4κ°μ§ λ°©λ²μΌλ‘ Dictionary λ₯Ό μμ±ν μ μμ΅λλ€.
μ°Έκ³ λ‘ λΉ λμ λ리λ₯Ό νννλ 리ν°λ΄μ ' [:] ' μ λλ€. ( μ½λ λ΄ *1*, *2* μμ νμΈ )
μμμ μΆκ° λ° μμ
/* μ μ½λλ μλΈμ€ν¬λ¦½νΈλ₯Ό μ΄μ©ν μμ μΆκ°, μλλ μΈμ€ν΄μ€ λ©μλλ₯Ό μ¬μ© */ myDict4[4] = 4 myDict4.updateValue(4, forKey: 4) /* μ μ½λλ μλΈμ€ν¬λ¦½νΈλ₯Ό μ΄μ©ν μμ μμ , μλλ μΈμ€ν΄μ€ λ©μλλ₯Ό μ¬μ© */ myDict4[2] = nil myDict4.removeValue(forKey: 2) /* μ μ½λλ 리ν°λ΄μ μ΄μ©ν μμ μ 체 μμ , μλλ μΈμ€ν΄μ€ λ©μλλ₯Ό μ¬μ© */ myDict4 = [:] myDict4.removeAll()
μν
/* element λ³λ‘ μννκ³ , tuple νμ μ΄λ€ */ for (key, value) in myDict4 { print(key, value) } /* .keys νλ‘νΌν°λ₯Ό ν΅ν΄ key λ§ μνν μ μλ€ */ for key in myDict4.keys { ... } /* .values νλ‘νΌν°λ₯Ό ν΅ν΄ value λ§ μνν μ μλ€ */ for value in myDict4.values { ... } /* key λ₯Ό λ΄λ¦Όμ°¨μμΌλ‘ μν νμ¬ μν */ for key in myDict4.keys.sorted { $0 > $1 } { }
μν νλ μ΄μ
λμ λ리λ μμκ° μλ 컬λ μ μ λλ€.
μλ μ¬μ§κ³Ό κ°μ΄ μνν λλ§λ€ μμκ° λ°λλ―λ‘ μνμ μμκ° μ€μνλ©΄ μν ν΄μΌ ν©λλ€.
μΆκ°μ μΈ μ 보λ νμμμ μΆκ°νλλ‘ νκ² μ΅λλ€ππ»
λ!
'iOS > π Swift' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Swift] CaseIterable μ΄λ? (0) 2021.03.29 [Swift] μ°μ°μ ꡬν (Implementing Operator Methods) (0) 2021.03.18 [Swift] Enumeration μ΄μ 리 (0) 2021.03.10 [Swift] - Autoclosuresλ? (0) 2021.03.02 [Swift] - Subscripts (μλΈμ€ν¬λ¦½νΈ) (0) 2021.02.19