μλ νμΈμ~
μ€λμ κ³ μ°¨ν¨μμ λν΄μ μ 리ν΄λ³΄λ €κ³ ν©λλ€ : )
κ³ μ°¨ν¨μ
κ³ μ°¨ ν¨μλ λ€λ₯Έ ν¨μλ₯Ό μΈμλ‘ λ°κ±°λ ν¨μ μ€νμ κ²°κ³Όλ₯Ό ν¨μλ‘ λ°ννλ ν¨μλ₯Ό λ§ν©λλ€.
Swiftμ ν΄λ‘μ λ μΌκΈ κ°μ²΄μ΄κΈ° λλ¬Έμ ν¨μμ μ λ¬ μΈμλ‘λ μ λ¬μ΄ κ°λ₯νλ©°
κ²°κ΄κ°μΌλ‘ λ°νμ΄ λΉμ°ν κ°λ₯ν©λλ€.
μ’ λ₯
map, filter, reduce, forEach, compactMap, flatMap λ±μ΄ μμ΅λλ€
κ°μ₯ λ§μ΄ μ¬μ©λκ³ μλ κ³ μ°¨ ν¨μ 3κ°μ§
1. Map
Returns an array containing the results of mapping the given closure over the sequence’s elements.
κΈ°μ‘΄μ 컨ν μ΄λμ μμμ λν΄ μ μν ν΄λ‘μ λ‘ λ§€νν κ²°κ³Όλ₯Ό μλ‘μ΄ μ»¨ν μ΄λλ‘ λ°νν©λλ€.
ν¨μ μν
func map<T>(_ transform: (Element) throws -> T) rethrows -> [T]
// 컨ν
μ΄λμ λ³νλ μμλ₯Ό ν¬ν¨νλ λ°°μ΄μ λ°ν
μμ
// String λ°°μ΄μ Int λ°°μ΄λ‘ λ³νν΄λ³΄μ.
let strings: [String] = ["1", "2", "3", "4", "5"]
let numbers: [Int] = strings.map { Int($0)! }
numbers // [1,2,3,4,5]
// Int λ°°μ΄μ μ°μ°μ΄ν λ°°μ΄λ‘ λ³νν΄λ³΄μ.
let numbers: [Int] = [1,2,3,4,5]
let multipledNumbers: [Int] = numbers.map{ $0 * 5 }
multipledNumbers // [5, 10, 15, 20, 25]
μ€λͺ
Mapμ κΈ°μ‘΄μ 컨ν μ΄λμ μμλ₯Ό 맀κ°λ³μλ‘ μ μν ν΄λ‘μ μ μ°μ°λλ‘
ννμ λ§κ² λ°νλ κ°λ€μ λ°ννκΈ° λλ¬Έμ
λ°λ³΅λ¬Έ for, while λ± λ³΄λ€ κ°κ²°νκ² μ¬μ©ν μ μμ΅λλ€.
2. Filter
Returns an array containing, in order, the elements of the sequence that satisfy the given predicate.
κΈ°μ‘΄ 컨ν μ΄λμ μμμ λν΄ μ‘°κ±΄μ λ§μ‘±νλ κ°μ λν΄μ μλ‘μ΄ μ»¨ν μ΄λλ‘ λ°νν©λλ€.
ν¨μ μν
func filter(_ isIncluded: (Self.Element) throws -> Bool) rethrows -> [Self.Element]
μμ
// Int λ°°μ΄μμ μ§μλ§ νν°λ§ν΄λ³΄μ.
let numbers = [1,2,3,4,5]
let evens = number.filter{ $0 % 2 == 0 }
evens // [ 2, 4 ]
μ€λͺ
Filterλ κΈ°μ‘΄μ 컨ν μ΄λμ μμμμ 쑰건μ μΆ©μ‘±νλ κ°λ€μ λν΄
μλ‘μ΄ μ»¨ν μ΄λλ‘ λ°νν©λλ€.
λ°λΌμ μνλ λ°μ΄ν°λ₯Ό μΆμΆν λ νΈλ¦¬νκ² μ¬μ©ν μ μκ² λ©λλ€.
3. Reduce
Returns the result of combining the elements of the sequence using the given closure.
μ μν ν΄λ‘μ λ₯Ό μ¬μ©νμ¬ κΈ°μ‘΄ 컨ν μ΄λμ μμλ₯Ό κ²°ν©ν κ²°κ³Όλ₯Ό λ°νν©λλ€.
μ μΈ
func reduce<Result>(_ initialResult: Result, _ nextPartialResult: (Result, Element) throws -> Result) rethrows -> Result
μμ
// Int λ°°μ΄μ ν©μ ꡬν΄λ³΄μ.
let numbers = [1,2,3,4,5]
var sumNumbers: Int = numbers.reduce(0, +)
// (μ΄κΈ°κ°, κ²°ν©μ μ¬μ©ν ν΄λ‘μ ) , [+, -, *, / λ± ]
sumNumbers // 10
μ€λͺ
Reduceλ κΈ°μ‘΄μ 컨ν μ΄λμ μμλ₯Ό
νΉμ ν ν΄λ‘μ ( μ°μ° λ±)λ₯Ό ν΅ν΄
κ²°ν©ν κ²°κ³Όλ₯Ό λ°ννλ κ³ μ°¨ν¨μμ λλ€.
κ³ μ°¨ν¨μμ λν΄μ κ°λ΅νκ² μμλ΄€μ΅λλ€ : )
λ€λ₯Έ κ³ μ°¨ν¨μμ λν΄μ μ 리ν κΈ°νκ° μκΈ°λ©΄
μ΄ ν¬μ€ν μ μΆκ°ν΄ λ³΄κ² μ΅λλ€~
κ·ΈλΌ μ΄λ§ ππ» ππ» ππ»
'iOS > Swift' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[ Swift ] Realmμμ λ°°μ΄μ¬μ©νκΈ° ( feat.List ) (0) | 2022.06.28 |
---|---|
[ Swift ] μ κ·μμ μ¬μ©ν΄λ³΄μ ( UITextField, UITextView ) (0) | 2022.06.27 |
[swift] μ±ν UI ꡬνν΄λ³΄κΈ°(2) (0) | 2022.03.09 |
[swift] μ±ν UI ꡬνν΄λ³΄κΈ°(1) (0) | 2022.03.03 |
[swift] λ²νΌν΄λ¦ μ λλ‘λ€μ΄λλ λ·°λ₯Ό λ§λ€κΈ° (1) | 2022.03.02 |