Optional과 guard

w0308h 2월 26일 PM 12:05 5 0
w0308h Profile Image Level 9
2 #TIL

Optional 타입은 값이 있을 수도, 없을 수도 있는 변수나 상수의 타입입니다. 이는 Swift 언어에서 안정성과 신뢰성을 높이기 위해 도입된 개념으로, 값을 확실히 할 수 없을 때 nil 값을 사용하여 코드 안정성을 보장할 수 있습니다.
guard 문은 조건을 검사하여 만족하지 않으면 else 블록을 실행하는 문장입니다. if 문과 유사하지만, guard 문은 조건을 만족하지 않을 때 바로 함수나 반복문 등을 종료할 수 있어 코드 가독성을 높일 수 있습니다.
예를 들어, Optional 타입과 guard 문을 함께 사용하면 다음과 같은 코드를 작성할 수 있습니다.

func divide(_ a: Int?, _ b: Int?) -> Int? { 
    guard let a = a, let b = b, b != 0 else { return nil } 
    return a / b 
}

위 코드에서는 a와 b가 Optional 타입으로 선언되어 있으며, guard 문을 사용하여 a와 b가 nil 값이 아니고, b가 0이 아닌지 검사합니다. 만약 하나라도 조건을 만족하지 않으면 nil 값을 반환하고, 조건을 모두 만족하면 a를 b로 나눈 결과를 반환합니다.
이렇게 Optional 타입과 guard 문을 사용하면 값의 존재 여부를 미리 검사하여 안정성을 높일 수 있습니다.

댓글