TIL 240123
π컬λ μ νμ (Collection Type)μ΄λ?
μ€μννΈλ λ§μ μμ λ°μ΄ν°λ₯Ό λ¬Άμ΄μ μ μ₯νκ³ κ΄λ¦¬ν μ μλ 컬λ μ νμ μ μ 곡νλ€.
컬λ μ νμ μ μ’ λ₯λ λ€μκ³Ό κ°λ€.
- Array
- Dictionary
- Set
νμ | μ€λͺ |
Array | μμκ° μλ 리μ€νΈ 컬λ μ |
Dictionary | ν€μ κ°μ μμΌλ‘ μ΄λ£¨μ΄μ§ 컬λ μ |
Set | μμκ° μκ³ , λ©€λ²κ° μ μΌν 컬λ μ |
λ°°μ΄(Array)
λ°°μ΄μ λ©€λ²κ° μμ(μΈλ±μ€)λ₯Ό κ°μ§ 리μ€νΈ ννμ 컬λ μ νμ μ΄λ€.
1. λ°°μ΄μ μ μΈκ³Ό μμ±
λ°°μ΄ νμ
μ μ μΈν΄ μ€ λ°©λ²μ λ€μνλ€.
ArrayλΌλ ν€μλμ νμ
μ΄λ¦μ μ‘°ν©μΌλ‘ μ¬μ© κ°λ₯νκ³ λκ΄νΈλ‘ κ°μ λ¬Άμ΄ Array νμ
μμ ννν μλ μλ€.
λΉ λ°°μ΄μ μ΄λμ
λΌμ΄μ , 리ν°λ΄ λ¬Έλ²μ ν΅ν΄ μμ±ν μ μλ€.
// 1. νμ
μΆλ‘ : λκ΄νΈλ₯Ό μ¬μ©νμ¬ λ°°μ΄μμ νν
var arr = [1, 2, 3, 4]
var arr = [] // error: νμ
μΆλ‘ μΌλ‘ λΉ λ°°μ΄ μμ± λΆκ°
// 2. νμ
Annotation : [Int]μ Array<Int>μ μΆμ½ νν
var arr: [Int] = [1, 2, 3, 4]
var arr: [Int] = []
// 3. λΉ Array μμ±
var arr: Array<Int> = Array<Int>()
// κ°μ νν
var arr: Array<Int> = [Int]()
var arr: Array<Int> = []
var arr: [Int] = Array<Int>()
var arr: [Int] = [Int]()
var arr: [Int] = []
var arr = [Int]()
2. λ°°μ΄μ μ κ·Όκ³Ό μμ
λ°°μ΄μ κ°μ νμΈνκΈ°
count : λ°°μ΄μ μμ κ°μ νμΈ
let numbers = [1, 2, 3, 4, 5]
let count = numbers.count // 5
is Empty : λ°°μ΄μ΄ λΉμ΄μλμ§ μ¬λΆ νμΈ
let numbers = [1, 2, 3, 4, 5]
let isEmpty = numbers.isEmpty // false
contains : λ°°μ΄μ΄ νΉμ μμλ₯Ό ν¬ν¨νκ³ μλμ§ μ¬λΆ νμΈ
let numbers = [1, 2, 3, 4, 5]
let containsTwo = numbers.contains(2) // true
λ°°μ΄μ μμμ μ κ·ΌνκΈ°
subscript syntaxλ‘ μ κ·Ό(λκ΄νΈ []) : λ°°μ΄μ μΈλ±μ€λ₯Ό λ£μ΄ κ° λ°ν
β» λ°νμ μλ¬κ° λμ§ μλλ‘ μΈλ±μ€κ° μ ν¨ν΄μΌ νλ€!
let numbers = [1, 2, 3, 4, 5]
let number1 = numbers[0] // 1
let number2 = numbers[1] // 2
// λ²μλ‘λ μ κ·Ό κ°λ₯
let arr = numbers[0...1] // [1, 2]
first/ last : λ°°μ΄μ 첫 λ²μ§Έ λλ λ§μ§λ§ μμλ₯Ό λ°ν
let numbers = [1, 2, 3, 4, 5]
let firstNumber = numbers.first // 1
let lastNumber = numbers.last // 5
λ°°μ΄μ μμ μΆκ°νκΈ°
append : λ°°μ΄μ λμ μλ‘μ΄ μμλ₯Ό μΆκ°
var fruits = ["Apple", "Banana"]
fruits.append("Orange") // ["Apple", "Banana", "Orange"]
insert :λ°°μ΄μ νΉμ μΈλ±μ€μ μλ‘μ΄ μμλ₯Ό μΆκ°
var fruits = ["Apple", "Banana"]
fruits.insert("Grapes", at: 1) // ["Apple", "Grapes", "Banana"]
+= μ°μ°μ : λ°°μ΄μ νλ μ΄μμ λλ±ν μμ΄ν μΆκ°
var numbers = [1, 2, 3]
numbers += [4, 5] // [1, 2, 3, 4, 5]
λ°°μ΄μ μμ λ³κ²½νκΈ°
subscript syntaxλ‘ λ³κ²½
var numbers = [1, 2, 3, 4, 5]
numbers[1] = 20 // [1, 20, 3, 4, 5]
numbers[1...3] = [10, 20, 30] // [1, 10, 20, 30, 4, 5]
replaceSubrange : μ§μ λ λ²μμ μμλ₯Ό λ€λ₯Έ μμλ‘ λ³κ²½
var numbers = [1, 2, 3]
numbers.replaceSubrange(1..<2, with: [20, 30]) // [1, 20, 30, 4]
swap : νΉμ μΈλ±μ€μ ν΄λΉνλ μμλ₯Ό μλ‘ λ³κ²½
var numnbers = [1, 2, 3, 4, 5]
numbers.swapAt(0, 4) // [5, 2, 3, 4, 1]
λ°°μ΄μ μμ μμ νκΈ°
remove : λ°°μ΄μ μμλ₯Ό μ κ±°
var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
// 1. νΉμ μΈλ±μ€μ μμ μμ
numbers.remove(at: 3) // [1, 2, 3, 5, 6, 7, 8, 9]
// 2. λ°°μ΄μ 첫 λ²μ§Έ μμ μμ
numbers.removeFirst() // [2, 3, 5, 6, 7, 8, 9]
// 3. λ°°μ΄μ λ§μ§λ§ μμ μμ
numbers.removeLast()
print(numbers) // μΆλ ₯: [2, 3, 5, 6, 7, 8]
// 4. νΉμ 쑰건μ λ§μ‘±νλ μμ μμ (νμ μ κ±°)
numbers.removeAll { $0 % 2 != 0 } // μΆλ ₯: [2, 6, 8]
// 5. λ°°μ΄μ μΌλΆλ₯Ό μμ
numbers.removeSubrange(1..<3) // [2, 8]
// 6. λ°°μ΄μ λΉ λ°°μ΄λ‘ μ΄κΈ°ννμ¬ λͺ¨λ μμ μμ
numbers = [] //[]
λ°°μ΄ λ°λ³΅νκΈ°
for-in loop : λ°°μ΄μ μννμ¬ λ°°μ΄μ μ 체 κ° νμΈ
for item in numbers {
print(item)
} //λ°°μ΄ numbersμ μμκ° μμμμ itemμ ν λΉλμ΄ λ°λ³΅
enumerated : μμμ μΈλ±μ€μ ν¨κ» κ° νμΈ
let fruits = ["Apple", "Banana", "Orange"]
for (index, fruit) in fruits.enumerated() {
print("Index: \(index), Fruit: \(fruit)")
}
λΆλ³ λ°°μ΄
letμ μ¬μ©νμ¬ Array μ μΈ : μμ μ΄ λΆκ°λ₯ν Arrayμ΄λ―λ‘ λ©€λ²λ₯Ό μΆκ°νκ±°λ μμ ν μ μλ€
let immutableArray = [1, 2, 3]
immutableArray.append(4) // error
immutableArray.removeAll() // error
μ΄λ κ² Collection νμ κ³Ό λ°°μ΄μ λν΄ μ λ¦¬ν΄ λ³΄μλ€.
λ©μλλ€μ΄ μ λ§ λ§μμ 컬λ μ νμ μ λμ λ리μ μΈνΈλ λ°λ‘ ν¬μ€ν ν΄μΌκ² λ€.
μλ‘ μκ² λλ λ°°μ΄μ λ©μλλ€λ λμ€μ μΆκ°ν΄ λλλ‘ ν κ²μ!
βΌ π μ°Έκ³ μλ£
https://docs.swift.org/swift-book/documentation/the-swift-programming-language/collectiontypes
'Devlogπ©π»βπ» > Swift' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Swift] Optional (3) | 2024.03.08 |
---|---|
[Swift] 컬λ μ νμ (Collection Type) - Dictionary, Set (2) | 2024.01.24 |
[Swift] String λ¬Έμμ΄μμ Index μ κ·ΌνκΈ°(String.Index) (2) | 2024.01.18 |
[Swift] νμ μΆλ‘ (Type Inference)κ³Ό νμ μ΄λ Έν μ΄μ (Type Annotation) (2) | 2024.01.17 |
[Swift] 쑰건문μμ ','μ '&&'μ μ°¨μ΄ (3) | 2024.01.16 |