map πŸ“™

YaR LabΒ·2023λ…„ 12μ›” 5일
0

swiftΒ πŸ“™

λͺ©λ‘ 보기
14/16
post-thumbnail

1️⃣ μ •μ˜

  • μ‹œν€€μŠ€μ˜ μš”μ†Œμ— λŒ€ν•΄ μ§€μ •λœ ν΄λ‘œμ €λ₯Ό λ§€ν•‘ν•œ κ²°κ³Όλ₯Ό λ°°μ—΄λ‘œ λ°˜ν™˜
func map<T>(_ transform: (Self.Element) throws -> T) rethrows -> [T]

2️⃣ μ„€λͺ…

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배둜 λ§Œλ“œλŠ” ν΄λ‘œμ €λ₯Ό κ°„λž΅ν•˜κ²Œ ν‘œν˜„ν•œ κ²ƒμž…λ‹ˆλ‹€.


μΆœμ²˜πŸ“š

🍎Apple Docs: map

0개의 λŒ“κΈ€