κ³ μ°¨ν¨μλ?
ν¨μλ₯Ό νλΌλ―Έν°λ‘ μ¬μ©νκ±°λ, ν¨μμ μ€νκ²°κ³Όλ‘ ν¨μλ₯Ό 리ν΄νλ ν¨μ f(f(x))
- Sequence, Collection νλ‘ν μ½μ λ°λ₯΄λ 컬λ μ ( λ°°μ΄, λμ λ리,μΈνΈ λ±)μ κΈ°λ³Έμ μΌλ‘ ꡬνλμ΄μλ ν¨μμ΄λ€ + Optional typeλ ꡬνλμ΄ μμ
1) λ°°μ΄.map { ν΄λ‘μ (ν¨μ) }
κΈ°μ‘΄ λ°°μ΄ λ±μ κ° μμ΄ν μ μλ‘κ² λ§€ννμ¬ μλ‘μ΄ λ°°μ΄μ 리ν΄νλ ν¨μ
( λ°°μ΄μ μμ΄ν μ νκ°μ© λμ Έμ£Όμ΄ ν¨μ λ΄μ ν¨μκ° μ€ννλ€ )
let numbers = [1, 2, 3, 4, 5] newNumbers = numbers.map { "μ«μ: \($0)" } print(newNumbers) |
μ€ν κ²°κ³Ό : ["μ«μ: 1", "μ«μ: 2", "μ«μ: 3", "μ«μ: 4", "μ«μ: 5"] |
2) λ°°μ΄.filter { ν΄λ‘μ - 쑰건 }
κΈ°μ‘΄ λ°°μ΄ λ±μ κ° μμ΄ν μ 쑰건μ νμΈ ν ν , trueλ₯Ό λ§μ‘±νλ μμ΄ν μ κ±Έλ¬λ΄μ μλ‘μ΄ λ°°μ΄μ 리ν΄νλ ν¨μ
( κ° μμ΄ν μ νν°λ§ν΄μ , κ±Έλ¬λ΄ μλ‘μ΄ λ°°μ΄μ λ§λ€λ μ¬μ© )
λ§μ½ 쑰건μ λΆν©νλκ² νλλ μλ€λ©΄, λΉ λ°°μ΄μ 리ν΄
let names = ["Apple", "Black", "Circle", "Dream", "Blue"] var newNames = names.filter { (name) -> Bool in return name.contains("B") } // containsλ Stringμ μ΄λ―Έ ꡬνλμ΄ μλ ν¨μ print(newNames) |
μ€ν κ²°κ³Ό : ["Black", "Blue"] |
3) λ°°μ΄.reduce { ν΄λ‘μ }
κΈ°μ‘΄ λ°°μ΄ λ±μ κ° μμ΄ν μ ν΄λ‘μ κ° μ 곡νλ λ°©μμΌλ‘ κ²°ν©ν΄μ λ§μ§λ§ κ²°κ³Όκ°μ 리ν΄νλ ν¨μ (μ΄κΈ°κ° μ 곡ν νμμμ)
( κ° μμ΄ν λ€μ κ²°ν©νμ¬ νλμ κ°μΌλ‘ λ¦¬ν΄ )
var numbersArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] var resultSum = numbersArray.reduce(0) { (sum, num) in return sum + num } print(resultSum) |
μ€ν κ²°κ³Ό : 55 |
4) λ°°μ΄.forEach { ν΄λ‘μ }
κΈ°μ‘΄ λ°°μ΄ λ±μ κ° μμ΄ν μ νμ©νμ¬ κ° μμ΄ν μ νμ©νμ¬ νΉμ μμ μ μ€νν κ²°κ³Ό λ°°μ΄μ 리ν΄νλ ν¨μ
(κ° μμ΄ν μ νμ©ν΄μ κ°κ° νΉμ μμ μ μ€νν λ μ¬μ©)
let immutableArray = [1, 2, 3, 4, 5] immutableArray.forEach { num in print(num) } immutableArray.forEach { print("μ«μ: \($0)") } |
μ€ν κ²°κ³Ό : μ«μ: 1 μ«μ: 2 μ«μ: 3 μ«μ: 4 μ«μ: 5 |
5) λ°°μ΄.compactMap { ν΄λ‘μ }
κΈ°μ‘΄ λ°°μ΄ λ±μ κ° μμ΄ν μ μλ‘κ² λ§€νν΄μ λ³ννλ, μ΅μ λ μμλ€μ μ κ±°νκ³ , μλ‘μ΄ λ°°μ΄μ 리ν΄νλ ν¨μ
(mapν¨μμ κΈ°λ₯ + μ΅μ λ μ κ±° + μ΅μ λ λ°μΈλ© == compactMap)
(λ°°μ΄μμ nil κ°μ μ κ±°ν μ μκ³ μ΅μ λνμ μ μ½κ² μ¬μ©ν μ μλ€)
let numbers = [-2, -1, 0, 1, 2] var positiveNumbers = numbers.compactMap { $0 >= 0 ? $0 : nil } print(positiveNumbers) |
μ€ν κ²°κ³Ό : [0, 1, 2] |
6) λ°°μ΄.flatMap { ν΄λ‘μ }
μ€μ²©λ λ°°μ΄μ κ° λ°°μ΄μ μλ‘κ² λ§€νν΄μ λ΄λΆ μ€μ²©λ λ°°μ΄μ μ κ±°ν μλ‘μ΄ λ°°μ΄μ 리ν΄
(μ€μ²© λ°°μ΄μ flatνκ² λ§€ν)
var nestedArray = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] print(nestedArray.flatMap { $0 }) |
μ€ν κ²°κ³Ό : [1, 2, 3, 4, 5, 6, 7, 8, 9] |
'swift λ¬Έλ²π€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[SWIFT] λ©λͺ¨λ¦¬ κ΄λ¦¬ (0) | 2023.05.10 |
---|---|
[SWIFT] μ΅μ λ 체μ΄λ(Optional Chaining) (1) | 2023.05.10 |
[SWIFT] μμ±μ (0) | 2023.03.07 |
[SWIFT] μ΄κΈ°ν (0) | 2023.03.04 |
[SWIFT] ν΄λμ€μ μμ (0) | 2023.03.04 |