map
// for 문으로 구현
let num = ["1", "2", "3", "4", "5"]
var numberArray: [Int] = []
for index in num {
if let changeToInt = Int(index) {
numberArray.append(changeToInt)
}
}
print(numberArray)
// [1, 2, 3, 4, 5]
// map으로 구현
let stringArray = ["1", "2", "3", "4", "5"]
numberArray = stringArray.map {
if let changeToInt = Int($0) {
return changeToInt
}
return 0
}
print(numberArray)
// [1, 2, 3, 4, 5]
filter
// for 문으로 구현
// numbers에서 짝수만 추출하기
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
var evenNumbers: [Int] = []
for number in numbers {
if number % 2 == 0 {
evenNumbers.append(number)
}
}
print(evenNumbers)
// [2, 4, 6, 8]
// filter로 구현
// numbers에서 짝수만 추출하기
let numbers1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
let evenNumbers2 = numbers1.filter { $0 % 2 == 0 }
print(evenNumbers2)
// [2, 4, 6, 8]
reduce
// for 문으로 구현
// 각 요소의 합 구하기
let numbers2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
var sum = 0
for number in numbers2 {
sum += number
}
print(sum)
// 55
// reduce로 구현
// 표현식1
// 각 요소의 합 구하기
let numbers3 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
let sum1 = numbers3.reduce(0, +)
print(sum1)
// 55
//표현식2
// 각 요소의 합 구하기
let numbers4 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
let sum2 = numbers4.reduce(0) { $0 + $1 }
print(sum2)
// 55
예외 상황에 대한 처리 통해 자체적으로 오류 해결 혹은 어떤 에러 발생했는지 알려주는 등 조치와 대응
Error
발생할 수 있는 오류 값 나타내는 유형
throws
와 do-catch
문
throws
throw
do-catch
try
키워드 사용try
, try?
, try!
try
프로토콜
//프로토콜 사용
protocol 프로토콜이름 {
//프로토콜 정의(필요한 기능, 프로퍼티, 함수들 정의)
}
(+) 프로토콜 예시 설명 들으면서 get과 set에 대해 다시 정리 했다.
- get 과 set은 말 그대로 연산 프로퍼티를 사용할 때 가져오고, 설정한다고 생각하면 된다!
- 연산 프로퍼티에서 get set 둘 다 써주지 않으면 자동으로 get 만 내부에서 구현 된다.
- get은 읽기 전용 속성! 리턴 이용해 반환한다. 반환된 값 = 프로퍼티가 제공하는 값
- set은 값 설정! 값 할당하거나 변경
associatedtype
, typealias
associatedtype
typealias
같은 강의를 들어도 느낀 바가 다르고 정리하는 방식도 다르니까 이렇게 정리해놓으면 같이 복습할 수 있어서 너무 좋은 것 같아요!