본문 바로가기
Swift/기초

25. 스위프트 기초 문법[날씨(5) - 코드 개선, 레퍼런스 보는 방법]

by UDDT 2025. 2. 1.

Swift/기초 카테고리에 업로드한 모든 내용은 KxCoding 기초 강의를 토대로 작성하였습니다.

 

 

레퍼런스

  1. alt + 클릭해서 레퍼런스 보기

 

nil 병합 연산자 (nil coalescing operator)

   1. nil coalescing operator 문법

// nil coalescing operator
a ?? b                           // 여기서 a는 항상 optional 표현식, 만약 a에 nil이 저장되어 있다면 b를 리턴함
// a와 b는 항상 같은 Type이여야함 
// a에 값이 저장되어 있으면 a를 unwrapping해서 Return, a에 nil이 저장되어 있다면 b를 Return

let name: String? = "Kxcoding"
print(name)
Optional("Kxcoding")

let name: String? = "Kxcoding"
print(name ?? "회원님")          // nil coalesing operator을 사용하면 추출이 된 값이 return됨.
Kxcoding

let name: String? = nil
print(name ?? "회원님")           // nil이 저장되어 있을 때는 ?? 우측의 값이 기본 값으로 사용됨 
회원님

 

코드 개선하기

  1. 랜덤 날씨를 불러오는 코드로 수정

let weather = "맑음"

let weather = ["맑음", "흐림", "눈", "비"].randomElement()

/*
.randomElement는 optional Type을 return하기 때문에, 
weather이 String이 아니라 String? Type으로 바뀜
*/

* 오류가 발생하는 이유는 컬렉션이 비어있을 때 nil을 return하기 때문

 

  2. 강제추출을 사용해도 문제는 없음            * 여기서 가능한 이유는, 4개 중의 하나의 값을 반드시 리턴할 것이기 때문

반드시 값을 도출하는 부분에서는 강제추출을 해도 됨

* 그러나 app store에 출시하는 앱은 강제추출을 하지 않는 것이 안전함

 

  3. 배열에 값이 저장되어 있지 않으면, 기본 값으로 "맑음"을 return하도록 nil coalescing operator 문법 사용

* unwrapping은 '??' 연산자가 알아서 해줌.

 

  4. 날씨도 랜덤 값을 불러오도록 수정, 코드 위치 정리

 

최근댓글

최근글

skin by © 2024 ttuttak