100 Days of SwiftUI - Day 8
매개변수의 기본값
함수를 선언할 때, 매개변수 부분에 기본값을 지정할 수 있다.
매개변수의 타입 뒷 부분에 등호를 사용하여 기본값을 입력한다.
함수 사용 시 인자가 입력되지 않는다면 정의된 기본값이 사용된다.
func gugu(dan:Int, count:Int = 9) {
for i in 1...count {
print("\(dan) x \(i) = \(dan*i)")
}
}
gugu(dan:7) //1~9까지
gugu(dan: 7, count: 19) //1~19까지
Array.removeAll() : 배열의 모든 요소를 삭제하며 배열에 할당된 메모리 공간을 반환함.
데이터를 삭제하며 이전에 할당된 메모리 공간을 다시 사용하고 싶다면:
Array.removeAll(keepingCapability: true)
기본값은 주로 많이 바뀌지 않을 것으로 예상하는 변수에 사용된다
(선택지가 있지만 대부분 바뀌지 않는 경우)
ex) 내비게이션의 경로 선택 시, 사람들은 주로 가장 빠른 길로 가길 원한다.
고속도로 우선 O/X와 같은 경우
에러 처리
Error
프로토콜을 사용하여 오류를 사용자가 정의할 수 있다. 오류 정의에는 열거형 enum
을 사용하여 표현할 수 있다.
enum PasswordError : Error {
case short, obvious
}
에러가 발생할 가능성이 있는 함수는 throws
키워드를 사용한다.
throws
가 있는 함수는 던지기 함수라고 하며, 오류를 전파한다.
오류를 발생시키기 위해서 throw
키워드를 사용한다.
func checkPassword(_ password: String) throws -> String {
if password.count < 5 {
throw PasswordError.short
}
}
오류를 처리하기 위해 do-catch
구분을 사용하여 적절하게 오류를 처리한다.
let pswd = "12345"
do {
let result = try checkPassword(pswd)
print("패스워드 안전도 : \(result)")
} catch {
print("에러 발생")
}
오류를 무시하기 위해 try!
를 사용할 수 있다.
try!
는 do-catch
가 필요하지 않지만 오류가 발생하는 경우 프로그램에 충돌이 발생할 수 있다.
Error.localizedDescription으로 오류의 자세한 정보를 확인할 수 있다.