[Swift] if let과 guard let

코르피·2022년 6월 10일
0

🔥if let

먼저 if let을 알기 위해서는 옵셔널 이라는 것을 알아야 한다.
swift에서는 nil을 사용하는데 값이 없다는 걸 얘기한다.
옵셔널이란 변수나 상수에 nil값이 있는 것을 얘기하는데 ?를 통해서 표현할 수 있다.
애플이 안정성을 굉장히 중요시 한다는게 여기서도 드러나는 것 같다

옵셔널 변수로 선언이 되면 여간 귀찮은게 아니다.. 값도 하나하나 체크 해주어야 하고 언래핑을 할 때에도 신경을 써주어야 한다.
하지만 어디서 오류가 나는지 확실히 체크 할 수 있게 되어서 큰 프로그램을 작성할 때 신경쓸 부분이 줄어들 수 있어
프로그래밍을 계속 해나가면서 장점이 더 큰 부분으로 다가올 것 같다. 👍

var array: [Int?] = [1, 2, nil, 4 ,5]

옵셔널 변수는 이렇게 ?를 통해서 선언을 해줄 수 있고
여기서 값을 꺼내 쓰려면 옵셔널 변수로 선언되어 있기 때문에 if let을 통해 값이 있는지 없는지 체크할 필요가 있다.

for index in array {
    if let number = index {
        print(number)
    }
}

if let으로 상수를 선언한 다음 값을 넣어주고 만약 값이 nil이라면
false를 반환해서 처리할 수 있다.

🔥guard let

guard let도 사용법은 비슷하다.

for index in array {
    guard let number = index else {
        break
    }
    print(number)
}

guard let 상수를 선언해준 뒤 실행하면 상수가 nil 인지 아닌지 체크를 한 후 코드를 실행한다.
if let과 다른점이 있다면 guard let 뒤에 else를 넣어준다는 점이다.
여기에는 상수의 값이 nil일 때 처리해줄 코드를 넣어준다.

제어 변경 구문 (Control Transfer Statements)을 넣어주어 처리를 해야 한다.
Swift는 5개의 제어 변경 구문이 있다

  • continue
  • break
  • fallthrough
  • return
  • throw

swift 공식 문서 [제어흐름]

🤔 if let과 guard let의 차이점

if letguard let은 비슷하면서 사용법이 조금 다르다

if let은 상수를 선언해 주고 nil이 오면 false를 반환한다는 점과
선언한 상수는 if문 내부에서만 사용할 수 있다는 점이 있고

guard let은 상수를 선언하고 nil이 왔을 때의 제어를 꼭 처리해주어야 한다는 점과
선언한 상수를 내부에서 계속 사용할 수 있다는 점이 있다.

나는 이 중에서 언래핑을 할 때에는 if let을 사용하고 이 값이 nil인지 아닌지를 판단할 때는 guard let을 쓰는 편이다
사람마다 스타일이 조금씩 다르니 상황에 맞게 잘 사용하면 될 것 같다 😁

profile
행복합시다!!

0개의 댓글