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직접 해보기
let f = readLine()!.components(separatedBy: ",").map { Int($0)! }
// TODO: 1행 = 섭씨를 ","로 연결
// TODO: 2행 = 레이블 "F=<f> C=<c>"을 ";"로 연결
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
로직 및 흐름의 모든 레슨
직접 연습해 보세요: Swift 플레이그라운드