새소식

iOS/Swift

[기본문법]assert와 guard

  • -

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

'iOS > Swift' 카테고리의 다른 글

[기본문법] 프로토콜  (0) 2022.12.28
[기본문법]타입캐스팅  (0) 2022.12.21
[기본문법] 상속  (0) 2022.12.16
[기본문법]클래스와 구조체 비교  (0) 2022.12.14
[기본문법] 프로퍼티  (0) 2022.10.28
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.