- μ€μννΈ νμ μΊμ€ν
- μΈμ€ν΄μ€μ νμ μ νμΈ νλ μ©λ
- ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό λΆλͺ¨ νΉμ μμ ν΄λμ€μ νμ μΌλ‘ μ¬μ©ν μ μλμ§ νμΈ νλ μ©λ
- is, asλ₯Ό μ¬μ©νλ€.
* νλ³νμ 'ex. let someDouble = Double(2)' νμ μΊμ€ν μ΄ μλλΌ μλ‘μ΄ κ°μ μμ±νλ κ²μ΄λ€.
- μμ ν΄λμ€
- νμ νμΈ
isλ₯Ό μ¬μ©νμ¬ νμ μ νμΈνλ€.
- μ μΊμ€ν (Up Casting)
- asλ₯Ό μ¬μ©νμ¬ λΆλͺ¨ν΄λμ€μ μΈμ€ν΄μ€λ‘ μ¬μ©ν μ μλλ‘ μ»΄νμΌλ¬μκ² νμ μ 보λ₯Ό μ νν΄μ€λ€.
- Any νΉμ AnyObjectλ‘λ νμ μ 보λ₯Ό λ³νν μ μλ€.
- μμμ μΌλ‘ μ²λ¦¬λλ―λ‘ κΌ νμν κ²½μ°κ° μλλΌλ©΄ μλ΅ν΄λ 무방νλ€.
- λ€μ΄ μΊμ€ν (Down Casting)
as? λλ as!λ₯Ό μ¬μ©νμ¬ μμ ν΄λμ€μ μΈμ€ν΄μ€λ‘ μ¬μ©ν μ μλλ‘ μ»΄νμΌλ¬μκ² μΈμ€ν΄μ€μ νμ μ 보λ₯Ό μ νν΄μ€λ€.
A. μ‘°κ±΄λΆ λ€μ΄ μΊμ€ν
- as?λ₯Ό μ¬μ©νλ€.
- μΊμ€ν μ μ€ν¨νλ©΄, μ¦ μΊμ€ν νλ €λ νμ μ λΆν©νμ§ μλ μΈμ€ν΄μ€λΌλ©΄ nilμ λ°ννκΈ° λλ¬Έμ κ²°κ³Όμ νμ μ μ΅μ λ νμ μ΄λ€.
B. κ°μ λ€μ΄ μΊμ€ν
- as!λ₯Ό μ¬μ©νλ€.
- μΊμ€ν μ μ€ν¨νλ©΄, μ¦ μΊμ€ν νλ €λ νμ μ λΆν©νμ§ μλ μΈμ€ν΄μ€λΌλ©΄ λ°νμ μ€λ₯κ° λ°μνλ€.
- μΊμ€ν μ μ±κ³΅νλ©΄ μ΅μ λμ΄ μλ μΌλ° νμ μ λ°ννλ€.
- νμ©