assert와 guard
assert
- 특정 조건을 체크하고, 조건이 성립되지 않으면 메세지를 출력하게 하는 함수
assert 함수는 디버깅 모드에서만 동작하고 주로 디버깅 중 조거느이 검증을 위하여 사용한다.
guard문
어떤 것을 검사하여 그 결과에 따라 다음에 오는 코드를 실행할지 말지 결정하는 것
guard 문에 주어진 조건문이 거짓을 때 구문이 실행된다.
assert
import Foundation
var value = 0
assert(value == 0) //통과
value = 2
assert(value == 0, "값이 0이 아닙니다.") //에러, 메세지 출력
----------------------------------------------------
__lldb_expr_18/MyPlayground.playground:7: Assertion failed: 값이 0이 아닙니다.
Playground execution failed:
guard문
import Foundation
/*
guard 조건 else {
조건이 false 하면 else 구문이 실행되고
return or throw or break를 총해 이 후 코드를 실행하지 않도록 한다.
}
*/
func guardTest(value: Int) {
guard value == 0 else {return}
print("안녕하세요.")
}
//guardTest(value: 2). //아무것도 출력되지 않음
guardTest(value: 0)
----------------------------------------
안녕하세요.
guard문으로 옵셔널 벗기기
import Foundation
/*
guard 조건 else {
조건이 false 하면 else 구문이 실행되고
return or throw or break를 총해 이 후 코드를 실행하지 않도록 한다.
}
*/
func guardTest(value: Int?) {
guard let value = value else { return }
print(value)
}
guardTest(value: 2)
guardTest(value: nil) //아무것도 출력되지 않음
---------------------------------------------
2
guard문을 사용하면 옵셔널 바인딩된 상수를 조건문 범위 밖에서도 사용할 수 있다.
End