μ΄λ² κΈμ μ§λ¨ μλ£νμ λν μ 리μ λλ€.
0. μ€μννΈμ μ§λ¨ μλ£ν
- λ°°μ΄ (Array) - Indexλ‘ κ΅¬λΆλλ μμμ λ°λΌ 리μ€νΈ νμμ κ°μ μ μ₯νλ μλ£ν
- μ§ν© (Set) - μ€λ³΅λμ§ μλ μ μΌν λ°μ΄ν°λ€μ΄ λͺ¨μΈ μ§ν© ννμ μλ£ν
- νν (Tuple) - μ’ λ₯μ μκ΄μμ΄ λ°μ΄ν°λ€μ λͺ¨μ μλ£ν, μμ λ° μμ λΆκ°λ₯
- λμ λ리 (Dictionary) - Keyμ Valueλ‘ μ°κ΄λ λ°μ΄ν°λ₯Ό μμ μμ΄ λͺ¨μ μλ£ν
βοΈννμ μ μΈν λλ¨Έμ§ μλ£νμ μ μ₯λλ λ°μ΄ν°μ νμ μ΄ λμΌν΄μΌ ν©λλ€.
1. λ°°μ΄ (Array)
λ°°μ΄μ μ λ ₯λλ λ°μ΄ν°λ€μ κ°κ°μ μμ, Indexλ₯Ό κ°μ§λλ€.
Indexλ μ μλ‘ μ΄λ£¨μ΄μ§κ³ 0λΆν° μμνμ¬ λ°μ΄ν°κ° μΆκ°λ λλ§λ€ μ¦κ°ν©λλ€.
Indexλ μμλλ‘ ν λΉλκ³ , μ€κ°μ μλ΅λκ±°λ 건λλ°λ Indexλ μ‘΄μ¬νμ§ μμ΅λλ€.
μ¦, λ°°μ΄ μ€κ°μ λ°μ΄ν°κ° μ¬λΌμ§λλΌλ μ¬λΌμ§λ Index κ°μ λ°°μ΄μ λ§μ§λ§ Index μ λλ€.
μ€μννΈ λ°°μ΄μ 3κ°μ§ νΉμ§ :
1. λ°°μ΄μλ μ΄λ€ νμ μ΄λΌλ μ μ₯μ΄ κ°λ₯νμ§λ§, νλμ λ°°μ΄μ λͺ¨λ κ°μ νμ μ λ°μ΄ν°λ‘ μ΄λ£¨μ΄μ ΈμΌ νλ€.
2. λ°°μ΄ μ μΈ μ λ°°μ΄μ μ μ₯ν λ°μ΄ν°μ νμ μ λͺ νν ν΄μΌνλ€.
3. λ°°μ΄μ ν¬κΈ°λ λμ μΌλ‘ νμ₯ κ°λ₯νλ€.
μ€μννΈμμ λ°°μ΄μ μ μ (Static)μΈ λ°©μκ³Ό λμ (Dynamic)μΈ λ°©μμΌλ‘ μ μ κ°λ₯νλ°,
μ μ (Static)μΈ λ°©μμ μ²μλΆν° λ°°μ΄μ λ°μ΄ν°λ₯Ό ν¬ν¨νμ¬ μ μνλ λ°©μμ΄κ³ ,
var array = [1, 2, 3, 4, 5]
λμ (Dynamic)μΈ λ°©μμ μ μΈκ³Ό μ΄κΈ°νλ§ ν΄ λμ ν κ·Έλκ·Έλ λμ μΌλ‘ λ°μ΄ν°λ₯Ό μΆκ°νλ λ°©μμ λλ€.
var array: Array<Int> // λ°°μ΄ μ μΈ
array = Array() // λ°°μ΄ μ΄κΈ°ν
var arr: [Int] // λ°°μ΄ μ μΈ
arr = [Int]() // λ°°μ΄ μ΄κΈ°ν
λ°°μ΄ κ΅¬μ‘°μ²΄κ° μ μΈλ§ λμμ λλ λ©λͺ¨λ¦¬ 곡κ°μ μ°¨μ§ νμ§ μκ³ μλ€κ°,
μ΄κΈ°νκ° μ§νλλ©΄ κ·Έλ λ©λͺ¨λ¦¬λ₯Ό ν λΉ λ°μ΅λλ€.
λ°°μ΄μ λμ μΌλ‘ μμ΄ν μ μΆκ°ν λ μ¬μ©νλ λ©μλ :
append(_:)
insert(_:at:)
append(contentsOf:)
λ²μ μ°μ°μλ₯Ό μ΄μ©ν λ°°μ΄ μμ΄ν μμ :
λ²μ μ°μ°μλ₯Ό μ΄μ©ν΄μ κ°μ Έμ¨ λ°°μ΄μ μλ‘μ΄ λ°μ΄ν°λ₯Ό ν λΉνλ©΄ κ°μ Έμ¨ λ°°μ΄κ³Ό ν λΉν λ°μ΄ν°μ ν¬κΈ°κ° μΌμΉνμ§ μμ λλ μμ΄ν μ λ³κ²½ν μ μμ΅λλ€.
λ€μκ³Ό κ°μ΄ κ°μ Έμ¨ λ°°μ΄μ ν¬κΈ°κ° ν λΉν λ°μ΄ν°μ ν¬κΈ°λ³΄λ€ 컀λ κ°λ₯νκ³ μμλ κ°λ₯ν©λλ€.
var array = [1, 2, 3, 4, 5]
array[1...2] = [6, 7, 8]
// array = [1, 6, 7, 8, 4, 5]
array[2...4] = [9, 10]
// array = [1, 6, 9, 10, 5]
2. μ§ν© (Set)
μ§ν©μ λ°°μ΄κ³Ό μ μ¬νμ§λ§ κ°μ νμ μ μλ‘ λ€λ₯Έ λ°μ΄ν°λ₯Ό μ€λ³΅ μμ΄ μ μ₯ν λ μ¬μ©ν©λλ€.
λ΄λΆμ μΌλ‘ ν΄μ(Hash) μ°μ°μ κ²°κ³Όκ°μ μ΄μ©νμ¬ λ°μ΄ν°λ₯Ό μ μ₯νλ―λ‘ μ§ν©μ μ μ₯ν λ°μ΄ν° νμ μ ν΄μ μ°μ°μ ν μ μλ νμ μ΄μ΄μΌ ν©λλ€.
μ€μννΈμ λͺ¨λ κΈ°λ³Έ νμ
λ€μ κΈ°λ³Έμ μΌλ‘ ν΄μ μ°μ°μ ν μ μμ΄ λ¬Έμ κ° μμ§λ§, μμλ‘ λ§λ νμ
μ μ΄μ©ν΄ μ§ν©μ μ μ₯νλ €λ©΄ μ΄ νμ
μ Hashable
νλ‘ν μ½μ ꡬνν΄μΌ ν©λλ€.
μ§ν©μ μ μνλ λ°©λ² :
var temp: Set = ["1", "2", "3", "4", "5"]
// μ΄κΈ°κ°μ μ¬μ©νμ¬ μ μ
var t: Set<String> = []
// λΉ λ°°μ΄μ μ΄κΈ°κ°μΌλ‘ μ§ν© λ§λ€ λλ type annotationμμ νμ
λ°λμ μμ±
var s: Set<String>()
s.insert("1")
s.insert("2")
// Set κ°μ²΄λ₯Ό μ΄μ©νμ¬ μ μ, μμ΄ν
μΆκ°
μ§ν©μ λ°μ΄ν° λμ μΆκ°, μμ :
insert(_:)
-> μ§ν©μ λ°μ΄ν°λ₯Ό μΆκ°ν λ μ¬μ©, μ΄λ―Έ κ°μ λ°μ΄ν°κ° μ μ₯λμ΄ μμ λλ μ무 μ²λ¦¬λ νμ§ μμ΅λλ€.remove(_:)
-> μ§ν©μ λ°μ΄ν°λ₯Ό μμ ν λ μ¬μ©, μ§ν© λ΄λΆλ₯Ό κ²μνμ¬ μ λ ₯λ μΈμμ κ°μ λ°μ΄ν°λ₯Ό μμ νκ³ μμ λ κ°μ λ°νν©λλ€. μμ ν λ°μ΄ν°κ° μ§ν©μ μμΌλ©΄,nil
μ λ°νν©λλ€.removeAll()
-> μ§ν©μ λ°μ΄ν° μ 체λ₯Ό μμ ν©λλ€.contains(_:)
-> μ§ν©μ νΉμ λ°μ΄ν°κ° μλμ§ νμΈν μ μμ΅λλ€. μμΌλ©΄true
, μμΌλ©΄false
λ₯Ό λ°νν©λλ€.
μ§ν©μ μ°μ° :
intersection(_:)
-> λ μ§ν©μμ 곡ν΅λλ λΆλΆ, κ΅μ§ν© μ°μ°μ ν΄μ€λλ€.symmetricDifference(_:)
-> λ μ§ν©μμ μ΄λ ν μͺ½μλ§ μλ μμ΄ν μΌλ‘ μ§ν©μ λ§λ€μ΄μ€λλ€.union(_:)
-> λ μ§ν©μ μλ λͺ¨λ μμ΄ν , ν©μ§ν© μ°μ°μ ν΄μ€λλ€.subtract(_:)
-> ν μͺ½ μ§ν©μμ λ€λ₯Έ μͺ½ μ§ν©μ μμ΄ν μ μ μΈν, μ°¨μ§ν© μ°μ°μ ν΄μ€λλ€.
3. νν (Tuple)
ννμ νλμ ννμ μ¬λ¬ κ°μ§ νμ μ μμ΄ν μ μ μ₯ν μ μμ§λ§, μ μΈλκ³ λλ©΄ μμμ μ±κ²©μ κ°μ Έ κ°μ μΆκ°νκ±°λ μμ νλ λ±μ λ³κ²½μ΄ λΆκ°λ₯ν©λλ€.
ννμ λ€λ₯Έ λ°°μ΄μ΄λ λμ λ리μ²λΌ μ μΈν μ μλ ν€μλκ° μκ³ , μ 곡νλ λ©μλκ° μμ΅λλ€.
λν SequenceTypeλ μ§μνμ§ μμ ννμ for ~ in ꡬ문μΌλ‘ μνν μλ μμ΅λλ€.
ννμ ν¨μλ λ©μλμμ λ μ΄μμ κ°μ λ°νν΄μΌν λ νΈλ¦¬νκ² μ¬μ©λ©λλ€.
ννμ μΈλ±μ€(Index)λ₯Ό μμ±μΌλ‘ κ°μ Έ μ΄λ₯Ό μ΄μ©ν΄ κ°μ μ°Έμ‘°ν μ μμ΅λλ€.
let tup = ("1", 2, "3", "num")
tup.0 // "1"
tup.3 // "num"
ννμ λ§μ½ νλμ μμ΄ν λ§ μ μ₯λλ€λ©΄ μ΄λ μ€μ λ‘ ννμ΄ μλ μμ΄ν νμ μ μΌλ° μλ£νμ΄ λ©λλ€.
ννμ μμ΄ν μ κ°λ³ λ³μλ μμλ‘ κ°κ° ν λΉλ°λ λ°μΈλ©(Binding) λ°©μλ κ°λ₯ν©λλ€.
let tup = ("1", 2, "3", "num")
let (a,b,c,d) = tup
// a -> "1"
// b -> 2
// c -> "3"
// d -> "num"
4. λμ λ리 (Dictionary)
λμ λ리λ κ³ μ ν€(Key)μ κ·Έμ λμνλ κ°(Value)μ μ°κ²°νμ¬ λ°μ΄ν°λ₯Ό μ μ₯νλ μλ£νμ λλ€.
λμ λ리λ₯Ό μ¬μ©ν λ μ£Όμν μ :
1. νλμ ν€λ νλμ λ°μ΄ν°μλ§ μ°κ²°λμ΄μΌ νλ€.
2. νλμ λμ λ리μμ ν€λ μ€λ³΅λ μ μλ€. μ€λ³΅ν΄μ μ μΈνλ©΄ κΈ°μ‘΄ ν€μ μ°κ²°λ λ°μ΄ν°κ° μ κ±°λλ€.
3. νλμ λμ λ리μ μ μ₯νλ λ°μ΄ν° νμ μ λͺ¨λ κ°μμΌ νλ€.
4. ν€μ λ΄λΆμ μΌλ‘ μμκ° μμΌλ―λ‘ for~in ꡬ문μΌλ‘ μνν μ μλ€.
5. λμ λ리μ ν€μ νμ μ ν΄μ μ°μ°μ΄ κ°λ₯ν νμ μ΄μ΄μΌ νλ€.
λμ λ리μ μ μΈ, μ΄κΈ°ν :
// μ μΈκ³Ό μ΄κΈ°ν 1
var dic = Dictionary<String, String>()
// μ μΈκ³Ό μ΄κΈ°ν 2
var dic = [String:String]()
// μ μΈ 1
var dic = Dictionary<String, String>
// μ μΈ 2
var dic = [String:String]
// μ΄κΈ°ν
dic = Dictionary<String, String>()
dic = Dictionary()
dic = [String:String]()
dic = [:]
λμ μΌλ‘ μμ΄ν μΆκ°, μ κ±° :
var dic = [String:String]()
dic["KR"] = "Seoul"
//μ§μ λμ
dic.updateValue("London", forKey: "EN")
// updateValue λ©μλ μ¬μ©νμ¬ μΆκ°
// κΈ°μ‘΄μ μ μ₯λ ν€κ° μμΌλ©΄ κ°μ μμ νκ³ κΈ°μ‘΄ κ° λ°ν
dic["KR"] = nil
// nilμ ν λΉνμ¬ μμ
dic.removeValue(forKey: "EN")
// removeValue λ©μλλ₯Ό μ¬μ©νμ¬ μμ
// μμ λ μμ΄ν
μ κ°μ λ°ν, μλ ν€λΌλ©΄ nil λ°ν
λμ λ리 μν νμ :
λμ λ리μ μ μ₯λ μμ΄ν κ°μλ μμκ° μμ§λ§, μμ΄ν μ μ μ₯ν λ λ΄λΆμ μΌλ‘ ν€λ₯Ό λ°νμΌλ‘ ν ν΄μ μ°μ° κ°μ κΈ°μ€μΌλ‘ μ λ ¬νκΈ° λλ¬Έμ μν νμμ΄ κ°λ₯ν©λλ€.
for (key, value) in dic {
print("key : \(key), value : \(value)")
}
μ΄ λ, λ°μ΄ν°μ μμλ ν€μ ν΄μ μ°μ° κ°μ κΈ°μ€μΌλ‘ μ λ ¬λμ΄ μκΈ° λλ¬Έμ μ λ ₯ν μμκ° μλλλ€.