Map
Coddy Swift 여정의 로직 및 흐름 섹션에 포함된 레슨 — 56개 중 23번째.
map은 클로저를 인자로 받아 모든 요소에 적용하고, 그 결과로 구성된 새로운 배열을 반환합니다. 새로운 배열은 원본과 동일한 길이를 가집니다.
let nums = [1, 2, 3, 4]
let doubled = nums.map { $0 * 2 }
print(doubled) // [2, 4, 6, 8]$0은 클로저의 첫 번째 매개변수를 나타내는 약어입니다. 더 긴 형태는 매개변수 이름과 반환 타입을 명시합니다:
let doubled = nums.map { (n: Int) -> Int in
return n * 2
}map은 요소의 타입을 변경할 수도 있습니다. String을 반환하는 클로저를 통해 [Int]를 매핑하면 [String]을 얻게 됩니다:
let labels = nums.map { "#\($0)" }
print(labels) // ["#1", "#2", "#3", "#4"]챌린지
쉬움한 줄의 입력을 읽습니다: 쉼표로 구분된 정수 리스트(화씨 온도)입니다.
C = (F - 32) * 5 / 9 공식을 사용하여 각 온도를 정수 산술(소수점 이하 버림, 0을 향해 절삭)로 섭씨로 변환합니다. 다음을 각각 별도의 줄에 출력하세요:
,로 연결된 섭씨 온도들- 각 온도당
F=<f> C=<c>접두사가 붙은 레이블을;로 연결하여 출력
두 줄 모두에 map을 사용하세요.
입력 32,212,98,0에 대한 출력은 다음과 같습니다:
0,100,36,-17
F=32 C=0;F=212 C=100;F=98 C=36;F=0 C=-17치트 시트
map은 모든 요소에 클로저를 적용하고 동일한 길이의 새 배열을 반환합니다:
let nums = [1, 2, 3, 4]
let doubled = nums.map { $0 * 2 } // [2, 4, 6, 8]$0은 클로저의 첫 번째 매개변수에 대한 약어입니다. 명시적 형태:
let doubled = nums.map { (n: Int) -> Int in
return n * 2
}map은 요소의 타입을 변경할 수 있습니다 (예: [Int] → [String]):
let labels = nums.map { "#\($0)" } // ["#1", "#2", "#3", "#4"]직접 해보기
let f = readLine()!.components(separatedBy: ",").map { Int($0)! }
// TODO: 1행 = ","로 연결된 섭씨 온도
// TODO: 2행 = ";"로 연결된 "F=<f> C=<c>" 형식의 레이블
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.