assert
- 특정 조건을 체크하고, 조건이 성립되지 않으면 메시지를 출력하게 할 수 있는 함수
- assert 함수는 디버깅 모드에서만 동작하고 주로 디버깅 중 조건의 검증을 위하여 사용
var value = 0
assert(value == 0)
value = 2
assert(value == 0, "값이 0이 아닙니다.")
- 첫 번째 assert는 참이기 때문에 오류가 발생하지 않음
- 두 번째 assert는 거짓이기 때문에 런타임에러가 발생
- Assertion failed: 값이 0이 아닙니다.
guard 문
- 조건을 검사하여 그다음에 오는 코드를 실행할지 말지 결정하는 구문
- guard을 사용하여 조건이 성립하지 않을 시 특정 실행 구문을 빠르게 종료
- guard의 else 블록 내부에는 특정 코드 블록을 종료하는 지시어(return, break 등)가 꼭 있어야 함
- 타입 캐스팅, 옵셔널과 자주 사용
func guardTest(_ value: Int){
guard value == 0 else {return}
print("안녕하세요")
}
guardTest(1)
guardTest(0) //안녕하세요
"if let" vs "guard let"
- if let은 옵셔널 바인딩 된 상수가 if let 구문 안에서만 사용 가능
- guard let 구문은 옵셔널 바인딩 된 상수를 함수 내부의 지역 상수처럼 사용 가능
- if let 구문은 else가 필요 없지만, guard let 구문은 else 구문이 무조건 따라와야 함
반응형
'⌨️ Language > swift' 카테고리의 다른 글
[Swift] 익스텐션 (Extensions) (0) | 2023.02.06 |
---|---|
[Swift] 프로토콜 (Protocol) (0) | 2023.02.06 |
[Swift] 타입 캐스팅 (0) | 2023.02.06 |
[Swift] 클래스(Class)와 구조체(Struct) (0) | 2023.02.06 |
[Swift] 옵셔널 (Optional) (0) | 2023.02.06 |
댓글