Swift- inout
Swift - inout
μ€λμ Swift ν¨μ λ¬Έλ²μΈ inout ν€μλμ λν΄μ μμλ³΄λ €κ³ ν©λλ€.
μ°λ¦¬λ μ ν¬μ€ν https://pololove.tistory.com/97 μμ μ€μννΈμμ ν¨μκ° λ¬΄μμΈμ§μ λν΄ νμ΅νμ΅λλ€.
κΈ°λ³Έμ μΌλ‘ ν¨μμ νλΌλ―Έν°λ letμΌλ‘ μ μΈλλ©° μ΄λ "μμ"μ΄κΈ° λλ¬Έμ ν¨μ λ΄λΆμμ λ³κ²½μ΄ λΆκ°νλ€λ νΉμ§μ΄ μμ΅λλ€.
κ·ΈλΌ λ³κ²½μ΄ λΆκ°λ₯ν μνλ‘λ§ ν¨μλ₯Ό μ¬μ©ν΄μΌν κΉμ?
μλλλ€. ν¨μμ μ λ¬λ°μ νλΌλ―Έν°κ°μ λ³κ²½μν€κΈ° μν΄ μ°λ¦¬λ inout ν€μλλ₯Ό μ¬μ©ν μ μμ΅λλ€.
inout νλΌλ―Έν°
ν¨μμ νλΌλ―Έν° κ°μ λ³κ²½νκΈ° μν ν€μλ.
inoutν€μλμ μ¬μ©λ²λΆν° μμλ³΄κ² μ΅λλ€.
ν¨μμ νμ μμ inout ν€μλλ₯Ό μ μ΄μ€μΌλ‘μ¨ νλΌλ―Έν°λ₯Ό letμΌλ‘ μ μΈνλ κ²μ΄ μλ μλ³Έ κ°μ μ£Όμλ₯Ό μ λ¬λ°μ μ μκ² λμμ΅λλ€.
μ¦, κΈ°μ‘΄μλ νλΌλ―Έν°λ‘ μ λ¬λ°μ λ κ°μ 볡μ¬ν΄μ μλ‘μ΄ μμλ₯Ό μ μΈν κ²μ λ°ν΄ inout μ μ΄μ©ν νλΌλ―Έν° μ μλ μλ³Έκ°μ μ£Όμλ₯Ό μ λ¬λ°μ μλ³Έκ°μ λ³κ²½μν¬ μ μκ² λ κ²μ λλ€. (μ ννλ copy-in, copy-out 맀컀λμ¦μ μ¬μ©ν©λλ€. νμ§λ§ λ°νλ λμ κ°μ΄ κ²°κ΅ μλ³Έ λ³μμ μ¬ν λΉνκΈ°μ κ°λ€κ³ λ³Ό μ μμ΅λλ€.)
μ¬κΈ°μ μμμΌν κ²μ "μλ³Έ λ³μμ μ£Όμλ₯Όλ°μμ κ°μ λ³κ²½νλ€." μ λλ€.
κ·ΈλΌ ν¨μλ₯Ό νΈμΆν λλ μ£Όμλ₯Ό μ λ¬ν΄μ£Όμ΄μΌκ² μ£ ?
νΈμΆλΆλ λ€μκ³Ό κ°μ΅λλ€.
Swiftμμ &λ³μλͺ μ "λ³μμ μ£Όμλ₯Ό μ μ₯νλ ννμ" μ λλ€.
μ΄λ κ² μ£Όμλ₯Ό μ λ¬ν¨μΌλ‘μ¨ ν¨μ λ΄λΆμμ μλ³Έλ³μλ₯Ό λ³νμν¬ μ μκ² λμμ΅λλ€.
νμ§λ§ μ΄λ° inout ν€μλλ₯Ό μ¬μ©ν λ μ£Όμν μ μ΄ μλλ°μ, λ€μκ³Ό κ°μ΅λλ€.
1. μμ letμ΄λ 리ν°λ΄μ μ λ¬νλ κ² X
2. νλΌλ―Έν°μ κΈ°λ³Έκ° μ μΈ X
3. κ°λ³νλΌλ―Έν°λ₯Ό μ¬μ©νλ κ² X