iOS/Swift

[Swift] assert 와 guard

유훈 | Yuhun 2022. 1. 25. 00:14
반응형
// assert, guard
// 값 확인에 사용

// assert
// 디버깅 모드에서만 작동

var a: Int = 0

// 맞으면 지나감 아니면 출력하고 중지
assert(a == 0, "someInt != 0")

a = 1
//assert(a == 0, "someInt != 0")


// guard 는 빠른 종료를 위한 구문
// if else로 구현하는 것과 비슷

// 예시
var count: Int = 1
while true{
    guard count < 3 else{
        break
    }
    print(count)
    count += 1
}
// 딕셔너리에서 유용
// 참고로 딕셔너리에서 꺼내오는 값은 항상 옵셔널(값이 없을 수도 있으니까)
func exFunc(info: [String: Any]){
    // info.name이 String인가? 아니면 리턴
    guard let name = info["name"] as? String else{
        return
    }
    guard let age = info["age"] as? Int, age >= 0 else {
        return
    }
    
    print("\(name): \(age)")
}

exFunc(info: ["name":"personA", "age":20])
exFunc(info: ["name":"personB", "age":"30"]) // 그냥 return

출처 : 야곰 스위프트 기본 문법 강좌

반응형

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

[Swift] extension 익스텐션  (0) 2022.01.25
[Swift] 프로토콜 protocol  (0) 2022.01.25
[Swfit] 옵셔널 체이닝  (0) 2022.01.24
[Swift] 클래스의 생성자와 소멸자  (0) 2022.01.24
[Swift] 클래스의 상속  (0) 2022.01.24