μ΄κ±°νμ΄λ?
μ°κ΄λ μμ(μΌμ΄μ€)λ€μ νλμ μ΄λ¦μΌλ‘ λ¬Άμ μλ£ν (νμ )
- μΌμ΄μ€κ° μ νκ°λ₯νκ³ νμ λ κ°μ§ μλ‘ μ ν΄μ Έ μμλ μ μ
- κ°λ°μ λ§μλλ‘ λ§λ€ μ μλ μλ£ν (μλ£νμ 1κ·μΉ : 첫κΈμ λλ¬Έμλ₯Ό μ§μΌμΌ ν¨)
- μ½λμ κ°λ μ±κ³Ό μμ μ±μ΄ λμμ§ ==> λͺ νν λΆκΈ° μ²λ¦¬ κ°λ₯
- caseμμ λ²μ΄λλ©΄ μ€λ₯λ₯Ό λ°μνκΈ° λλ¬Έμ μμ μ
μ΄κ±°νμ μΈμ μ¬μ©ν κΉ?
[νμ λ μ¬λ‘(μ ν΄μ§ κ°―μ) μμμ μ μν μ μμλ]
- μ / ν / μ / λͺ© / κΈ / ν / μΌ
- λ / μ / λ¨ / λΆ
- μ’λ‘ μ λ ¬ / κ°μ΄λ° μ λ ¬ / μ°μΈ‘ μ λ ¬
- μ΄λ±νκ΅ / μ€νκ΅ / κ³ λ±νκ΅ / λνκ΅
- λ¨ / μ¬
- κ°μ / λ°μ / 보
enum School
{
case eliimentary
case middle
case high
case university
}
var school:School = School.university
universityλ³μκ° School μλ£νμ μ°λ κ²μ΄ λͺ ννλ€λ©΄ (μμ μ μΈμ΄ λμλ€λ©΄) μλ΅μ΄ κ°λ₯νλ€.
school = .middle
μ΄κ±°νμ λΆκΈ°μ²λ¦¬?
νμ switchλ¬ΈμΌλ‘ λΆκΈ°μ²λ¦¬ κ°λ₯
switch school {
case .elimentary:
print("μ΄λ±νμμ λλ€.")
case .middle:
print("μ€νμμ λλ€.")
case .high:
print("κ³ λ±νμμ λλ€.")
case .university:
print("λνμμ λλ€.")
}
μ΄κ±°νμ μμκ°(Raw Value)?
λ§€μΉλλ κΈ°λ³Έκ°(μ μ/λ¬Έμμ΄)μ μ ν΄, μ΄κ±°νμ μ’ λ μ½κ² νμ© κ°λ₯
μ¬λ¬κ°μ§μ ννλ‘ μμκ°μ μ μν μ μλ€. (Hashableν - Int / String / Character / Double λ± κ°λ₯)
enum Alignment: Int {
case left
case center
case right
}
let align = Alignment(rawValue: 0) // μΈμ€ν΄μ€ μμ±μ - μ΅μ λνμ μΌλ‘ λ¦¬ν΄ (μ€ν¨κ°λ₯)
let leftValue = Alignment.center.rawValue // μ κ·Όμ°μ°μλ₯Ό ν΅ν΄ μμκ° μ체μλ μ κ·Όκ°λ₯
Intμ κ²½μ° μμκ°μ μ λ ₯μνλ©΄ 0,1,2 μ΄λ κ² μλμΌλ‘ μ μ₯λ¨ (μ μμ κ²½μ° μ«μκ° νλμ© μ¦κ°)
enum Alignment1: String {
case left = "L"
case center = "C"
case right = "R"
}
Alignment1(rawValue: "C") // (κ°λ₯νμ§λ§) λ¬Έμμ΄ λ°©μμΌλ‘λ μ μ¬μ©νμ§λ μμ
let centerValue = Alignment1.center.rawValue
μ΄κ±°νμ μ°κ΄κ°(Raw Value)?
ꡬ체μ μΈ μΆκ°μ 보λ₯Ό μ μ₯νκΈ° μν΄ μ¬μ©
νμ μ κ΅νλμ§ μμ
- κ° μΌμ΄μ€λ³λ‘ μμ΄ν νΉμ§μ΄ μκ³ , κ·Έκ²μ μ μ₯ / νμ© ν νμκ° μμ λ
- κ°λ³ μΌμ΄μ€λ§λ€ μ μ₯ν νμμ λ°λ‘ μ μ (μλ£νμ μ νμ΄ μμ / ννμ νν)
- νλμ μΌμ΄μ€μ μλ‘ λ€λ₯Έ μ°κ΄κ°μ μ μ₯ν μ μμ ===> μ μΈμμ μ΄ μλλΌ , μλ‘μ΄ μ΄κ±°ν κ°μ μμ±ν λ μ μ₯
enum Computer {
case cpu(core: Int, ghz: Double)
case ram(Int, String)
case hardDisk(gb: Int)
}
let chip1 = Computer.cpu(core: 8, ghz: 3.5)
let chip2 = Computer.ram(16, "DRAM")
let chip3 = Computer.hardDisk(gb: 128)
μμκ°μ νμ©?
var chip = Computer.cpu(core: 8, ghz: 2.0)
switch chip {
case .cpu(core: 8, ghz: 3.1):
print("CPU 8μ½μ΄ 3.1GHzμ λλ€.")
case .cpu(core: 8, ghz: 2.6):
print("CPU 8μ½μ΄ 2.6GHzμ λλ€.")
case .ram(32, _):
print("32κΈ°κ°λ¨ μ λλ€.")
default:
print("κ·Έ μ΄μΈμ μΉ©μλ κ΄μ¬μ΄ μμ΅λλ€.")
}
μμκ°(Raw Values)κ³Ό μ°κ΄κ°(Associated Values)μ μ°¨μ΄?
- μλ£ν μ μΈ λ°©μ: μ μΈνλ μμΉκ° λ€λ¦
- μ μΈ νμ: (1) μμκ° ===> 2κ°μ§μ€ 1κ°μ§ μ ν / (2)μ°κ΄κ° ===> ννμ ννλ‘ νμ μ ν μμ
- κ°μ μ μ₯ μμ : (μμκ°: μ μΈμμ / μ°κ΄κ°: μλ‘μ΄ μ΄κ±°ν κ°μ μμ±ν λ )
- μλ‘ λ°°νμ : νλμ μ΄κ±°νμμ μμκ°κ³Ό μ°κ΄κ°μ ν¨κ» μ¬μ©νλ κ²μ λΆκ°λ₯ ν¨
'swift λ¬Έλ²π€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[SWIFT] Intν¨μ λΏμ 보기 (0) | 2023.07.14 |
---|---|
[SWIFT] νμ μ μΌλ¦¬μ΄μ€(Type Alias) (0) | 2023.07.12 |
[SWIFT] 컬λ μ ( Array, Set, Dictionary, KeyValuePairs ) (0) | 2023.07.12 |
[SWIFT] νν(Tuple) (0) | 2023.07.10 |
[SWIFT] νμ μΊμ€ν (Type Casting) (0) | 2023.07.10 |