μ ν리μΌμ΄μ μ΄ λμ λμ€μ μμ±νλ λ€μν μ°μ° κ²°κ³Όκ°μ λμ μΌλ‘ νμΈνκ³ μμ νκ² μ²λ¦¬ν μ μλλ‘ νμΈνκ³ λΉ λ₯΄κ² μ²λ¦¬ν μ μλ€.
- Assertion
- assert(_:_:file:line:) ν¨μλ₯Ό μ¬μ©νλ€.
- assert ν¨μλ λλ²κΉ λͺ¨λμμλ§ λμνλ€.
- λ°°ν¬νλ μ ν리μΌμ΄μ μμλ μ μΈλλ€.
- μμνλ 쑰건μ κ²μ¦μ μνμ¬ μ¬μ©νλ€.
* assert(_:_:file:line:)μ κ°μ μν μ νμ§λ§ μ€μ λ°°ν¬ νκ²½μμλ λμνλ precondition(_:_:file:line:) ν¨μλ μλ€.
- guard(λΉ λ₯Έμ’ λ£- Early Exit)
- guardλ₯Ό μ¬μ©νμ¬ μλͺ»λ κ°μ μ λ¬ μ νΉμ μ€νꡬ문μ λΉ λ₯΄κ² μ’ λ£νλ€.
- λλ²κΉ λͺ¨λ λΏλ§ μλλΌ μ΄λ€ 쑰건μμλ λμνλ€.
- guardμ else λΈλ λ΄λΆμλ νΉμ μ½λλΈλμ μ’ λ£νλ μ§μμ΄(return, break λ±)κ° κΌ μμ΄μΌ νλ€.
- νμ μΊμ€ν , μ΅μ λκ³Όλ μμ£Ό μ¬μ©λλ€.
- κ·Έ μΈμλ λ¨μ 쑰건 νλ¨ ν λΉ λ₯΄κ² μ’ λ£ν λλ μ©μ΄νλ€.
** if let / gurad λ₯Ό μ΄μ©ν μ΅μ λ λ°μΈλ© λΉκ΅ **
// 1. if let μ΅μ
λ λ°μΈλ©
if let unwrapped: Int = someValue {
// do something
unwrapped = 3
}
// if ꡬ문 μΈλΆμμλ unwrapped μ¬μ©μ΄ λΆκ°λ₯ ν©λλ€.
// unwrapped = 5
// 2. guard μ΅μ
λ λ°μΈλ©
// gaurd ꡬ문 μ΄νμλ unwrapped μ¬μ© κ°λ₯ν©λλ€.
guard let unwrapped: Int = someValue else {
return
}
unwrapped = 3