[Swift 기본 문법] assert, guard

dora·2024년 3월 17일

Swift 기본 문법

목록 보기
9/12

assert 함수

어플리케이션이 동작하는 도중에 생성하는 다양한 결과값을 동적으로 확인하고 안전하게 처리할 수 있도록 확인하고 빠르게 처리한다.

  • assert함수는 디버깅 모드에서만 동작하며, 배포하는 어플리케이션에서는 제외된다.
  • 주로 디버깅 조건 검증을 위해 사용한다.
  • 실제로 예상한 값과 맞는지 아닌지 확인하고 지나간다
var someInt: Int = 0
assert(someInt == 0, "someInt == 0")

someInt = 1
assert(someInt == 0, "someInt != 0")// 동작 중지, 검증 실패

assert를 활용한 함수

func functionaWithAssert(age: Int?){
	assert(age != nil, "age == nil")
    assert((age! >= 0) && (age! <= 130), "나이값이 잘못되었다.")
    
    print("당신의 나이는 \(age!)세 입니다")
}

functionWithAssert(age: 50)

Guard구문

  • guard를 사용하여 잘못된 값 전달 시 특정 실행 구문을 빠르게 종료한다.
  • guard의 else 블럭 내부에는 특정 코드 블럭을 종료하는 지시어(return, break emd)가 꼭 있어야 한다.
  • 타입 캐스팅, 옵셔널과도 자주 사용된다.
  • 그 외 단순 조건 판단 후 빠르게 종료할 때도 용이하다
func functionWithGuard(age: Int?){

	//언랩핑을 먼저 해본다
    guard let unwrappedAge = age,
    unwrappedAge < 130,
    unwrappedAge >= 0 else{
    print("나이값 입력이 잘못되었습니다")
    return
    }
    
    print("당신의 나이는 \(unwrappedAge)세 입니다")
}
var count = 1

while true{
	guard count < 3 else{
    	break
    }
    print(count)
    count +=1
}

func someFunction(info: [String: Any]){
	guard let name = info["name"] as? String else{ return}
    guard let age = info["age"] as? Int, age>=0 else{ return }
    
    print("\(name): \(age)")
}

someFunction(info: ["name": "jenny","age":"10"])
someFunction(info: ["name": "mike"])
someFunction(info: ["name": "dora","age":10])

0개의 댓글