-
210216 TIL: POP-5.객체지향 프로그래밍, assertTIL 2021. 2. 16. 23:37
POP
https://welly-log.tistory.com/13
assert
디버깅 모드에서 동작하며, 조건의 검증을 위해서 사용한다.
assert()
와 같은 역할을 하지만 실제 배포 환경에서도 동작하는precondition()
함수도 있다.var someInt: Int = 0 // 조건이 맞으면 지나치고, 맞지 않으면 다음 문구를 출력 및 동작 중지 assert(someInt == 0, "someInt != 0") someInt = 1 assert(someInt == 0, "someInt != 0") assert(someInt == 0) // 문구 없이 동작만 정지 시킴
func functionWithAssert(age: Int?) { assert(age != nil, "age == nil") assert((age! >= 0) && (age! <= 130), "나이값 입력이 잘못되었습니다") print("당신의 나이는 \(age!)세 입니다") } functionWithAssert(age: 50) functionWithAssert(age: -1) functionWithAssert(age: nil)
다음과 같이 인자 값의 유효성을 판단할 때에도 쓰인다.
assertionFailure()
함수는 assert의 조건 없이도 무조건 실패로 간주한다.switch (someCase) { case .A: blah() case .B: assertionFailure() }
'TIL' 카테고리의 다른 글
210218 TIL: POP-7.스위프트에서 디자인 패턴 적용 - (1) 생성 패턴 (0) 2021.02.19 210217 TIL: POP-6.프로토콜지향 프로그래밍 (0) 2021.02.17 210215 TIL: POP-4.Generic, lhs/rhs, declaration order (0) 2021.02.15 210214 TIL: POP-3: extension, subscript, overload/override (0) 2021.02.14 210213 TIL: POP-2: type, 함수/메소드 (0) 2021.02.13