정의
assert문은 특정 조건을 체크하고, 조건이 성립되지 않으면 메세지를 출력합니다.
실제 앱 성능엔 영향을 끼치지 않고, 디버깅 모드에서만 동작되는 특징이 있습니다.
선언 형식
- 총 4개의 파라미터를 작성해줍니다.
1, condition : 테스트할 조건을 작성하는 부분입니다.
2, message : 조건의 값이 false일 경우 출력될 메세지를 작성하는 부분입니다. 기본값은 빈 문자열입니다.
3, file : 메세지를 출력할 파일의 이름을 작성하는 부분입니다. assert(_:_:file:line:) 이 기본값으로 호출됩니다.
4, line : 출력할 메세지의 라인 수를 작성하는 부분입니다. assert(_:_:file:line:) 이 기본값으로 호출됩니다.
func assert(_ condition: @autoclosure () -> Bool, _ message: @autoclosure () ->
String = String(), file: StaticString = #file, line: UInt = #line)
사용
- assert 메서드 문법은 실제 앱 성능에선 영향을 끼치지 않기 때문에,
내부 테스트 과정에서 특정 조건이 성립되는지 검증을 할 때 유용하게 사용될 수 있습니다.
예제1
- 간단하게 상수를 사용해 작성해 보았습니다.
- myNum의 값은 1 인데, assert문의 조건식은 myNum의 값이 0 으로 테스트를 합니다.
- 실행결과가 어떻게 될까요?
let myNum: Int = 1
assert(myNum == 0, "error!")
- 실행결과입니다.
- error! 라고 입력한 메세지 부분을 제외하곤 기본값을 통한 값이 출력됩니다.
예제2
- 다음은 함수에 적용한 assert 예제입니다.
- 조건식이 일치할 때와 일치하지 않을 때의 경우를 나누어 결과를 확인해 보겠습니다.
- 값이 True일 때 예제입니다.
func assertTest(_ num: Int){
assert(num == 20, "error!!")
print("myNum is \(num)")
}
assertTest(20)
실행결과
// myNum is 20
- 값이 False일 때 예제입니다.
func assertTest(_ num: Int){
assert(num == 20, "error!!")
print("myNum is \(num)")
}
assertTest(10)
실행결과
// Assertion failed: error!!: file main.swift, line 2
내용출처
https://developer.apple.com/documentation/swift/1541112-assert
'iOS > Swift 문법 심화 학습' 카테고리의 다른 글
값 타입과 참조 타입 (0) | 2022.01.31 |
---|---|
extensions (0) | 2022.01.30 |
guard (0) | 2022.01.28 |
Initializer (0) | 2022.01.27 |
타입캐스팅 (0) | 2022.01.26 |
댓글