์๋ ํ์ธ์ Foma ์ ๋๋ค!
์์ฆ ์ข์ ์ฝ๋๋ฅผ ์ฐ๊ธฐ ์ํ ๊ณ ๋ฏผ์ ํ๊ณ ์๋๋ฐ ์ด๋ค ๊ธ์์ ์ข์ ์ฝ๋์ ๊ธฐ์ค์ด
1. ๋ณด๊ธฐ ์ฌ์ด ๊น๋ํ ์ฝ๋
2. ํจ์จ์ ์ธ ์ฝ๋
๋ผ๊ณ ํ๋๋ผ๊ตฌ์.
์ด๊ฑฐํ์ ๋ฏธ๋ฆฌ ์์ฃผ ์ฐ์ผ ํค์๋๋ฅผ ์ด๊ฑฐํด๋๋ ๊ฒ์ธ๋ฐ ์ด๊ฒ์ ๊น๋ํ ์ฝ๋๋ฅผ ์์ฑํ๋๋ฐ ํฐ ๋์์ ์ฃผ๋๋ผ๊ตฌ์.
๊ทธ๋์ ์ค๋์ Enum์ผ๋ก ์ด๋ป๊ฒ ์ฝ๋๋ฅผ ๊น๋ํ๊ฒ ์ ๋ฆฌํ๋์ง ๋ ๊ตฌ์ฒด์ ์ผ๋ก ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค!
๋ฐ๋ก ์์ํ ๊ฒ์~
Enum์ด๋?
"์ปดํจํฐ ํ๋ก๊ทธ๋๋ฐ์์ ์ด๊ฑฐํ์ ์์, ๋ฉค๋ฒ๋ผ ๋ถ๋ฆฌ๋ ๋ช ๋ช ๋ ๊ฐ์ ์งํฉ์ ์ด๋ฃจ๋ ์๋ฃํ์ด๋ค. ์ด๊ฑฐ์ ์ด๋ฆ๋ค์ ์ผ๋ฐ์ ์ผ๋ก ํด๋น ์ธ์ด์ ์์ ์ญํ ์ ํ๋ ์๋ณ์์ด๋ค." - ์ํค ๋ฐฑ๊ณผ -
๊ฐ๋จํ ๋งํ๋ฉด ์์ ์ญํ ์ ๊ฐ๋ค์ ๋ณด๊ธฐ ์ฝ๊ฒ ๋์ดํด๋๋ ๊ฒ์ ๋๋ค.
Enum์ ์ฐ๋ฉด ๋ญ๊ฐ ์ข์๋ฐ?๐คจ
1. ์ฝ๋๊ฐ ๋ณด๊ธฐ ์ฝ๊ณ ๊ฐ๊ฒฐํด์ง๋ค.
2. ์ฝ๋๋ฅผ ์์ฑํ ๋ ์ค์๋ฅผ ์ค์ฌ์ค๋ค.
3. ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ํธ๋ฆฌํด์ง๋ค.
์ด ์ธ๊ฐ์ง๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์์ ๋ฅผ ํตํด์ ์ด ์ธ๊ฐ์ง์ ๋ํด์ ์ค๋ช ํ๋๋ก ํ๊ฒ ์ต๋๋ค~
1. ์ฝ๋๊ฐ ๋ณด๊ธฐ ์ฝ๊ณ ๊ฐ๊ฒฐํด์ง๋ค.
Enum์ ์ฌ์ฉํ๋ฉด ๋ฏธ๋ฆฌ ์ํ๋ ์งํฉ์ ๋์ดํด๋์ ์ ์์ต๋๋ค.
๊ฐ ๋๋ฅ์์ ๋๋ผ๋ค์ด ์๋ ๊ฒ์ Enum์ผ๋ก ๋ง๋ค์ด๋ณผ๊ฒ์!
//case๋ฅผ ํ์ค๋ก ์ ์ด๋ ์๊ด์์ต๋๋ค!
enum Asia {
case korea,china,japan
}
enum America {
case usa
case canada
case mexico
}
enum Africa {
case libya
case egypt
case ethiopia
}
enum Europe {
case france
case italy
case germay
}
enum Oceania {
case australia
case newzealand
case solomon
}
์ด๋ ๊ฒ ๋ง๋ค์ด ๋์ผ๋ฉด ๊ฐ ๋๋ฅ ์์ ์ด๋ค ๋๋ผ๋ค์ด ์๋์ง ์ฝ๊ฒ ๋ณผ ์ ์์ต๋๋ค.
๋ํ ์ํ๋ ๋๋ผ๋ฅผ ์ ํ ๋๋ ๊ฐ๊ฒฐํ๊ฒ ์๋์ ๊ฐ์ด ์์ฑํ ์ ์์ต๋๋ค.
let korea = Asia.korea
์๋์ ๊ฐ์ด enum์ String์ ์ฑํํด์ค๋ค ์ํ๋ ์ด๋ฆ์ ์ ํด์ฃผ๊ณ
enum Asia:String {
case korea = "๋ํ๋ฏผ๊ตญ"
case china = "์ค๊ตญ"
case japan = "์ผ๋ณธ"
}
rawValue๋ฅผ ํ์ฉํด์ ์ ํด๋์ ์ด๋ฆ์ผ๋ก ์ค์ ํ ์๋ ์์ต๋๋ค.
let korea = Asia.korea.rawValue
print(korea) //๋ํ๋ฏผ๊ตญ
์ง๊ตฌ๋ผ๋ enum์ ๋ง๋ค๊ณ ๊ฐ ๋๋ฅ๋ณ ๋๋ผ ์ด๋ฆ์ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ๋๋ก ๋ง๋ค์ด๋ณด๊ฒ ์ต๋๋ค.
enum Earth{
case Asia(country:Asia)
case America(country:America)
case Africa(country:Africa)
case Europe(country:Europe)
case Oceania(country:Oceania)
}
switch case ๊ตฌ๋ฌธ์ ํ์ฉํด์ ์๋์ ๊ฐ์ด ์ํ๋ ๋๋ผ์ด๋ฆ์ ์ถ๋ ฅํ ์ ์์ต๋๋ค.
var earth = Earth.Asia(country: .korea)
switch earth {
case .Asia(let country):
print(country.rawValue)
default:
print("default")
}
//๋ํ๋ฏผ๊ตญ
2. ์ฝ๋๋ฅผ ์์ฑํ ๋ ์ค์๋ฅผ ์ค์ฌ์ค๋ค.
enum์ ์ฐ์ง ์๊ณ ๋์ ๋๋ฆฌ๋ก ๋๋ฅ๋ณ ๋๋ผ ์ด๋ฆ์ ์ ์ฅํด๋ณด๊ฒ ์ต๋๋ค.
var countryDic:[String:[String]] = [:]
countryDic["Asia"] = ["korea","china","japan"]
countryDic["America"] = ["usa","canada","mexico"]
countryDic["Africa"] = ["egypt","lybia","ethiopia"]
countryDic["Europe"] = ["france","italy","germany"]
countryDic["Oceania"] = ["australia","newzealand","solomon"]
์ฌ๊ธฐ์ ์์์์ ์๋ ํ๊ตญ๊ฐ์ ์ํ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น์?
์๋์ ๊ฐ์ด ๋์ ๋๋ฆฌ์ Asia๋ฅผ ํค๊ฐ์ผ๋ก ๋ฃ์ด์ฃผ๊ณ 0๋ฒ์งธ ๊ฐ์ ๊บผ๋ด์์ผ ํ ๊ฒ์ ๋๋ค.
let korea = countryDic["Asia"]![0]
print(korea) //korea
ํ์ง๋ง ์ด๋ ๊ฒ ์์ฑํ๊ฒ ๋๋ฉด ํค ๊ฐ์ ์๋ชป์ ๋ ฅํ๊ฑฐ๋ ๋๋ผ์ ๊ฐฏ์๋ณด๋ค ์ด๊ณผํ ์ธ๋ฑ์ค๋ฅผ ์ ์ผ๋ฉด ์ค๋ฅ๊ฐ ๋๊ฒ๋ฉ๋๋ค.
let korea = countryDic["asia"]![0] //Error
let korea = countryDic["Asia"]![5] //Error
ํ์ง๋ง enum์ ์ฌ์ฉํด์ ๋ฏธ๋ฆฌ ๋์ดํด๋์๋ค๋ฉด ์๋์ ๊ฐ์ด enum์ .์ ๋ถ์ด๋ฉด ์ด๋ค ๊ฒ๋ค์ด ์๋์ง ์ ์ ์๊ณ ์๋์ผ๋ก ์์ฑ๋๊ฒ ๋๋ฌธ์
์คํ๋ฅผ ๋ผ ์ผ๋ ์๊ณ ์๋ ๋๋ผ๋ฅผ ์ ๋ ฅํ ์ผ๋ ์์ด์ง๋๋ค.
3. ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ํธ๋ฆฌํด์ง๋ค.
์์์ ์ธ๊ธํ๋ฏ์ด Enum์ผ๋ก ๋ฏธ๋ฆฌ ๊ฐ์ ๋์ดํด๋์ผ๋ฉด ์ง์ ๋ฌธ์๋ฅผ ์ ๋ ฅํ ํ์์์ด .๊ณผ enterํค๋ก ๊ฐ์ ์ ํ ์ ์์ต๋๋ค.
์๋ ์ด๋ฆ์ ์ ๋ ฅํ๋ฉด ๋๋ผ ์ด๋ฆ์ ์๋ ค์ฃผ๋ enum๊ณผ ๋์ ๋๋ฆฌ๋ฅผ ๋ง๋ค์ด ๋๊ฒ ์ต๋๋ค.
์๋์ ๊ฐ์ด ์ฒ ์๊ฐ ์ด๋ ต๊ณ ๊ธด ๋ง๋ ์ด์์ ์๋ ์ฟ ์๋ผ๋ฃธํธ๋ฅด๋ฅผ ์์๋ก ๋ง๋ค๊ฒ ์ต๋๋ค.
enum Capital:String {
case KualaLumpur = "Malaysia"
}
let capital = ["KualaLumpur":"Malaysia"]
์๋ GIF๋ฅผ ๋ณด์๋ฉด enum์ ์ฌ์ฉํ์์๋ ์ผ๋ง๋ ํธ๋ฆฌํ๊ฒ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋์ง ๋น๊ตํ ์ ์์ต๋๋ค.
์ค๋์ ์ด๋ ๊ฒ ์ด๊ฑฐํ์ด ๋ฌด์์ธ์ง์ ์ด๊ฑฐํ์ ์ฐ๋ฉด ์ด๋ค ์ ์ด ์ข์์ง์ ๋ํด์ ์์๋ณด์์ต๋๋ค.
ํน์๋ผ๋ ํ๋ฆฐ ์ ์ด ์๊ฑฐ๋ ๊ถ๊ธํ์ ์ ์ด ์๋ค๋ฉด ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์!
Reference
Enumerations — The Swift Programming Language (Swift 5.4)
Enumerations An enumeration defines a common type for a group of related values and enables you to work with those values in a type-safe way within your code. If you are familiar with C, you will know that C enumerations assign related names to a set of in
docs.swift.org
๋๊ธ