Dev.YoungKyu
YoungKyu's Devlog
전체 방문자
오늘
어제
  • 분류 전체보기 N
    • 부스트캠프
    • iOS
    • visionOS
    • Backend N
    • 알고리즘
    • CS
    • Git
    • Python
    • 끄적끄적

블로그 메뉴

  • 홈
  • 🌝 티스토리 홈
  • ⭐️ 깃허브
  • 태그

공지사항

인기 글

최근 댓글

최근 글

태그

  • guard
  • 백준
  • CS
  • AutoLayout
  • swift
  • boj
  • image
  • alamofire
  • 오블완
  • Swift5.7
  • Git
  • 알고리즘
  • 모듈화
  • 소프트웨어 테스트
  • 소프트웨어공학
  • Concurrency
  • AVAudioSession
  • constraint
  • authenticationinterceptor
  • Python
  • 티스토리챌린지
  • ios
  • ImageResource
  • MVC
  • if let
  • SwiftUI
  • 부스트캠프
  • jekyll
  • Optional
  • 소프트웨어 공학

티스토리

hELLO · Designed By 정상우.
Dev.YoungKyu
[iOS][Swift] guard 문
iOS

[iOS][Swift] guard 문

2022. 9. 11. 15:17

고수들이 짠 코드들을 보다보면 모르는 구문들이 많아 코드가 이해안될 때가 많다. 그중 하나가 guard 이다. guard 문은 조건들을 걸러낼 때 사용한다. 그럼if 문을 사용하면 되는데, 왜 guard 를 사용하냐고 묻는다면 그 이유는 가독성에 있다.

먼저 guard 문의 사용법 부터 알아보자

 

guard 사용법

문법

guard " 조건 " else { 조건이 false 일 때 실행될 구문 }

 

사용 예시

// someValue 가 0이 아닐때만 출력
func someFunc(someValue: Int?) {
    guard someValue != 0 else { return }
    print(someValue)
}

someFunc(someValue: 5)// 5

if 문과 비교

string을 전달받아 출력해주는 함수를 작성해 보겠습니다.

if 문 일 때

func printMessage(_ message: String?) {
    if message == nil { return }
    print(message!) // 이미 nil 검사를 했으므로 force unwrapping 가능
}
printMessage(string)

guard 문 일 때

func printMessage(_ message: String?) {
    guard message != nil else { return }
    print(message!)
}
printMessage(string)

조건식에 이 함수가 수행하는데 필요한 조건을 그대로 적는다는 점에서 guard 구문은 코드를 분석할 때 if문에서 부정적인 조건식으로 검사하는 것보다 훨씬 가독성이 좋아진다.

 

guard 옵셔널 바인딩

func printMessage(_ message: String?) {
    guard let letMessage = message else { return }
    print(letMessage)
}
printMessage(string)

guard를 사용하면 if 로 옵셔널 바인딩했을 때와 달리 { } 괄호 밖에서도 사용가능하다.

매우 유용 !!

 


참고 링크

https://brunch.co.kr/@robinkangwgmv/4
https://zetal.tistory.com/entry/swift-guard

'iOS' 카테고리의 다른 글

[iOS]카카오 로그인 구현 시 키 값 숨기기  (0) 2022.09.11
[iOS][Swift] 프로토콜 vs 인터페이스 차이점  (1) 2022.09.11
[iOS][Swift] 코딩 컨벤션  (0) 2022.09.11
[iOS][Swift] Class 와 Struct  (1) 2022.09.11
[iOS][Swift] 투두리스트 앱 만들기 - UI 구성 AutoLayout Constraint 걸기  (0) 2022.09.11
    'iOS' 카테고리의 다른 글
    • [iOS]카카오 로그인 구현 시 키 값 숨기기
    • [iOS][Swift] 프로토콜 vs 인터페이스 차이점
    • [iOS][Swift] 코딩 컨벤션
    • [iOS][Swift] Class 와 Struct
    Dev.YoungKyu
    Dev.YoungKyu
    iOS를 공부하고 있습니다

    티스토리툴바