func map<T>(_ transform: (Self.Element) throws -> T) rethrows -> [T]
map(_:)
λ©μλλ λ°°μ΄μ λͺ¨λ μμμ λν΄ νΉμ λ³ν μμ
μ μνν κ²°κ³Όλ₯Ό μλ‘μ΄ λ°°μ΄λ‘ λ°νν©λλ€.
λ©μλμ 맀κ°λ³μλ‘ μ λ¬λλ λ³ν ν΄λ‘μ λ λ°°μ΄μ κ° μμλ₯Ό μΈμλ‘ λ°μ λ³ν μμ μ μνν ν, λ³νλ κ°μΌλ‘ μλ‘μ΄ λ°°μ΄μ ꡬμ±ν©λλ€.
λ°νλ μλ‘μ΄ λ°°μ΄μ μλ λ°°μ΄κ³Ό λμΌν μμλ₯Ό μ μ§νλ©°, κ° μμλ λ³ν μμ μ κ²°κ³Όλ‘ λ체λ©λλ€. μ΄ λ, μλ‘μ΄ λ°°μ΄μ μμ μλ μλ λ°°μ΄κ³Ό λμΌν©λλ€.
μλ₯Ό λ€μ΄, [1, 2, 3, 4, 5]
λΌλ λ°°μ΄μ΄ μλ€κ³ κ°μ νλ©΄, map(_:)
λ©μλλ₯Ό μ¬μ©νμ¬ μ΄ λ°°μ΄μ κ° μμλ₯Ό μ κ³±ν μλ‘μ΄ λ°°μ΄μ μμ±ν μ μμ΅λλ€.
let originalArray = [1, 2, 3, 4, 5]
let squaredArray = originalArray.map { $0 * $0 }
print(squaredArray) // μΆλ ₯ κ²°κ³Ό: [1, 4, 9, 16, 25]
μ μ½λμμ map(_:)
λ©μλλ ν΄λ‘μ { $0 * $0 }
λ₯Ό μ λ¬λ°μ, κ° μμλ₯Ό μ κ³±ν κ²°κ³Όλ₯Ό λ΄μ [1, 4, 9, 16, 25]
λ°°μ΄μ λ°νν©λλ€.
Swiftμμ $λ ν΄λ‘μ (Closure) ννμμμ κ°λ΅ν μΈμ μ΄λ¦μ μ¬μ©νλ λ¬Έλ²μ λλ€. μΌλ°μ μΌλ‘ ν΄λ‘μ μμ μΈμ μ΄λ¦μ μ§μ νκΈ° μν΄ λ§€κ°λ³μ μ΄λ¦μ μ¬μ©ν΄μΌ νμ§λ§, $0, $1, $2 λ±κ³Ό κ°μ΄ $ κΈ°νΈλ₯Ό μ¬μ©νμ¬ κ°λ¨νκ² μ§μ ν μ μμ΅λλ€. μ΄λ λ§€μ° μ§§μ ν΄λ‘μ μμ κ°λ μ±μ λμ΄κΈ° μν΄ μ¬μ©λ©λλ€.
μλ₯Ό λ€μ΄, λ°°μ΄μ κ° μμλ₯Ό 2λ°°λ‘ λ§λλ ν΄λ‘μ λ₯Ό μμ±νλ€κ³ κ°μ ν΄λ΄ μλ€. μ΄λ $0μ λ°°μ΄μ 첫 λ²μ§Έ μμ, $1μ λ λ²μ§Έ μμλ₯Ό λνλ΄λ©°, $0 2, $1 2μ κ°μ΄ ννν μ μμ΅λλ€.
μλλ $λ₯Ό μ¬μ©ν κ°λ¨ν μμ μ½λμ λλ€.
let numbers = [1, 2, 3, 4, 5]
let doubledNumbers = numbers.map { $0 * 2 }
print(doubledNumbers) // [2, 4, 6, 8, 10]
μ μ½λμμ map
ν¨μλ ν΄λ‘μ λ₯Ό νλΌλ―Έν°λ‘ λ°μΌλ©°, κ° λ°°μ΄ μμμ λν΄ ν΄λ‘μ λ₯Ό μ€νν κ²°κ³Όλ‘ μλ‘μ΄ λ°°μ΄μ λ°νν©λλ€. μ¬κΈ°μ $0 * 2
λ λ°°μ΄μ μμλ₯Ό 2λ°°λ‘ λ§λλ ν΄λ‘μ λ₯Ό κ°λ΅νκ² ννν κ²μ
λλ€.