Guard๋ฌธ์ ๋ฐ๋์ ์์ด์ผ ํ ์กฐ๊ฑด์ ๊ฒ์ฌํ์ฌ ๊ทธ ๋ค์์ ์ค๋ ์ฝ๋๋ค์ ์คํํ ์ง ๋ง์ง ๊ฒฐ์ ํ๋ค.
Guard๋ฅผ ์ด์ฉํ๋ ์ด์ ๋ฅผ ์ ๋ฆฌํ์๋ฉด ์๋์ ๊ฐ๋ค.
1. control flow์ indentation์ ๋จ์ํ๊ฒ ํ๊ธฐ์ํด
→ ์ฝ๋๊ฐ ๊น๋ํด์ง๊ณ ๊ทธ๋ก ์ธํด ์๋ฌ๋ฅผ ๋ฐฉ์งํ ์ ์๋ค.
2. ๋ถ์ ์ ํ ํ๋ผ๋ฏธํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์์ ๋ฒ๋ฆฌ๊ธฐ ์ํด
if๋ฌธ vs guard๋ฌธ
if๋ฌธ ์ฌ์ฉ ver.
func singHappyBirthday(){
if(birthdayIsToday){
if(invitedGuests > 0){
if (cakeCandleLit){
print("Happy Birthday to you!")
}else{
print("์ผ์ต ์ด๋ถ ๋ถ ์์ผ์ง")
}
}else{
print("์ด๋ ์๋ฌด๋ ์ํจ")
}
}else{
print("์ค๋์ ์๋ฌด๋ ์์ผ ์๋")
return
}
}
Guard ์ฌ์ฉ ver.
- else์ผ ๋ ๋ด๋ถ๊ฐ ์คํ๋์ด์ ๋ฆฌํด์ ํด์ ํจ์๋ฅผ ๋๋
func singHappyBirthday(){
guard birthdayIsToday else{
print("์ค๋์ ์๋ฌด๋ ์์ผ์ด ์๋")
return
}
guard invitedGuests > 0 else{
print("์ด๋ ์๋ฌด๋ ์ํจ")
return
}
guard cakeCandleLit else {
print("์ผ์ต ์ด๋ถ ๋ถ ์์ผ์ง")
return
}
print("Happy Birthday to you")
}
Guard with Optionals - guard let
if let ์ฌ์ฉ ver.
- unwrap๋ ์์๋ if let ๊ตฌ๋ฌธ ์์์๋ง ์ฌ์ฉํ ์ ์๋ค.
func processBook(title: String?, price: Double?, pages: Int?){
if let theTitle = title, let thePrice = price, let thePages = pages{
print("\(theTitle) costs $\(thePrice) and has \(thePages)pages.")
}
}
guard let ์ฌ์ฉ ver.
- unwrap๋ ์์๋ฅผ ์ผ๋ฐ ์์์ฒ๋ผ ๊ทธ ํจ์ ๋๊น์ง ์ฌ์ฉํ ์ ์๋ค.
func processBook(title: String?, price: Double?, pages: Int?){
guard let theTitle = title, let thePrice = price, let thePages = pages else {return}
print("\(theTitle) costs $\(thePrice) and has \(thePages)pages.")
}
'๐ iOS > Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] inout? | ํจ์ ๋ด๋ถ์์ ํ๋ผ๋ฏธํฐ์ ๊ฐ์ ๋ณ๊ฒฝํ๊ณ ์ง์ํ๊ธฐ (0) | 2022.06.23 |
---|---|
[Swift] Protocols | Delegate๋ฅผ ์ด์ง ๊ณ๋ค์ธ (0) | 2022.02.25 |
[Swift] Optionals (0) | 2021.07.26 |
[Swift] ๊ธธ์ด๊ฐ ์ ํด์ง ๋ฆฌ์คํธ ๋ง๋ค๊ณ 0์ผ๋ก ์ด๊ธฐํํ๊ธฐ (0) | 2021.06.30 |
[Swift] Class์ Inheritance(์์) (0) | 2021.06.22 |