Day 14 - 2023.01.20
// 변형하고자 하는 numbers와 변형 결과를 받을 doubledNumbers, strings
let numbers: [Int] = [0, 1, 2, 3, 4]
var doubledNumbers: [Int]
var strings: [String]
doubledNumbers = [Int]()
strings = [String]()
for number in numbers {
doubledNumbers.append(number * 2)
strings.append("\(number)")
}
print(doubledNumbers) // 출력: [0, 2, 4, 6, 8]
print(strings) // 출력: ["0", "1", "2", "3", "4"]
// numbers의 각 요소를 2배하여 새로운 배열 반환
doubledNumbers = numbers.map({ (numbers: Int) -> Int in
return numbers * 2
})
// numbers의 각 요소를 문자열로 변환하여 새로운 배열 반환
strings = numbers.map({ (number: Int) -> String in
return "\(number)"
})
print(doubledNumbers) // 출력: [0, 2, 4, 6, 8]
print(strings) // 출력: [ "0", "1", "2", "3", "4"]
// 매개변수, 반환타입, 반환 키워드(return) 생략, 후행 클로저
doubledNumbers = numbers.map{$0 * 2}
print(doubeldNumbers) // 출력: [0, 2, 4, 6, 8]
// 변수 사용에 주목
var filterd: [Int] = [Int]()
for number in numbers {
if numbers % 2 == 0 {
filterd.append(number)
}
}
print(filterd) // 출력: [0, 2, 4]
// numbers의 요소 중 짝수를 걸러내어 새로운 배열로 반환
let evenNumbers: [Int] = numbers.filter { (number: Int) -> Bool in
return number % 2 == 0
}
print(evenNumbers) // 출력: [0, 2, 4]
// 매개변수, 반환 타입, 반환 키워드(return) 생략, 후행 클로저
let oddNumbers: [Int] = numbers.filter {
$0 % 2 != 0
}
print(oddNumbers) // 출력: [1, 3]
// 통합하고자 하는 someNumbers
let someNumbers: [Int] = [2, 8, 15]
// 변수 사용에 주목
var result: Int = 0
// someNumbers의 모든 요소를 더한다.
for number in someNumbers {
result += number
}
print(result) // 출력: 25
// 초깃값이 0이고 someNumbers 내부의 모든 값을 더한다.
let sum: Int = someNumbers.reduce(0, {first: Int, second: Int) -> Int in
return first + second
})
print(sum) // 출력: 25
// 초기값이 0이고 someNumbers 내부의 모든 값을 뺀다.
var substract: Int = someNumbers.reduce(0, { (first: Int, second: Int) -> Int in
return first - second
})
print(subtract) // 출력: -25
// 초기값이 3이고 someNumbers 내부의 모든 값을 더한다.
let sumeFromThree = someNumbers.reduce(3) { $0 + $1 }
print(sumFromThree) // 출력: 28