09/06 (Tue)
fun
vararg
μΈμμ κ°μκ° μ ν΄μ§μ§ μμ ν¨μλ₯Ό μ¬μ©ν λλ νλΌλ―Έν° μ μ μμ vararg
λ³κ²½λ₯Ό λΆμ΄λ©΄ λλ€.
ν¨μ λ΄λΆμμλ μ μ ν λ°°μ΄ νμ
μΌλ‘ μ¬μ©ν μ μλ€.
λν, μ€νλ λ (*) μ°μ°μλ₯Ό μ¬μ©νμ¬ λ°°μ΄μ κ°λ³ μΈμ λμ λκΈΈ μ μλ€.
μ€νλ λ μ°μ°μλ₯Ό μ¬μ©νλ©΄ λ°°μ΄μ 볡μ¬νλ€ λ°λΌμ ν¨μλ΄μμ λ°°μ΄μ λν κ°μ λ³κ²½νμ¬λ, main ν¨μλ΄μ number μ κ°μ λ³κ²½λμ§ μλλ€.
νμ§λ§ μ΄λ μμ 볡μ¬κ° μ΄λ€μ§λ€. λ°°μ΄ λ΄λΆμ (μ μλ int) μ°Έμ‘°κ° λ€μ΄μλ κ²½μ°μλ μ°Έμ‘°κ° λ³΅μ¬λκΈ° λλ¬Έμ μ°Έμ‘°κ° κ°λ¦¬ν€λ λ°μ΄ν°κ° νΈμΆνλ μͺ½κ³Ό ν¨μ λ΄λΆ λ°°μ΄μμ 곡μ λλ€.
κΉμ 볡μ¬(Deep Copy) - μμ 볡μ¬(Shallow Copy)
κΉμ볡μ¬λ κ°μ²΄μ λͺ¨λ κ°μ λ€λ₯Έ λ©λͺ¨λ¦¬ μ£Όμμ 볡μ¬νλ€.
data class μΈ κ²½μ°, copy() ν¨μλ₯Ό μ¬μ©νλ©΄ κΉμ볡μ¬κ° μ΄λ£¨μ΄μ§λ€.
κΈ°λ³Έν΄λμ€λ₯Ό μ¬μ©νλ κ²½μ°μλ μ§μ ꡬνμ ν΅ν΄ μ¬μ©ν μ μλ€.
μμ볡μ¬λ κ°μ²΄μ μ°Έμ‘°μ£Όμκ°μ 볡μ¬νλ€.
볡μ¬λ κ°μ²΄μ κ°μ λ³κ²½νλ©΄ κ°μ μ£Όμκ°μ λ°λΌλ³΄λ μλ³Έκ°μ²΄μλ μν₯μ λΌμΉλ€.
μ½νλ¦°(μλ°)μμ '=' μ ν΅ν΄ λ€λ₯Έ μΈμ€ν΄μ€μ λμ μ νλ©΄ μμ볡μ¬κ° λλ€.
Any, Nothing, Unit
Any
μ½νλ¦°μμμ μ΅μμ ν΄λμ€κ° Any
μ΄λ€. μλ°μ Object
μ λΉμ·νλ€. μ½νλ¦°μμλ Object
λ₯Ό μ¬μ©ν μ μλ€.
κ·Έλ λ€λ©΄ Any
μ Object
μ μ°¨μ΄μ μ 무μμΈκ°?
μλ°μμλ primitive νμ κ³μΈ΅ ꡬ쑰μ νμ΄ μλλ©°, μμμ μΌλ‘ boxing ν΄μΌ νμ§λ§ (ex) int > Integer μ½νλ¦°μ
Any
μμλ λͺ¨λ μ νμ μμ μ νμ΄λ€.Any λ null κ°μ κ°μ§ μ μλ€. λ€λ₯Έ νμ κ³Ό λ§μ°¬κ°μ§λ‘
Any?
λ₯Ό μ¬μ©ν΄ Nullable μ²λ¦¬λ₯Ό ν μμλ€.
Unit
μλ°μμμ Void μ λμΌνλ€. μ£Όμ νΉμ§μΌλ‘λ λ€μκ³Ό κ°λ€.
Unit μ μΈμλ‘ μ¬μ©ν μ μλ€.
Unit νμ κ°μ νλλ§ μ‘΄μ¬νλ€
μμμ μΌλ‘ λ°νλλ€. return λ¬Έ μμ± μ λ€μ 리ν΄κ°μ μμ±νμ§μμΌλ©΄, Unitμ λ°νν
Nothing
μλ°μλ μ‘΄μ¬νμ§ μλ νμ μ΄λ€. ν¨μκ° μ μμ μΌλ‘ μ’ λ£λμ§ μμ λ λ°ν κ°μ΄ μλ―Έκ° μμ λ μ¬μ©νλ€.
for λ¬Έ
for 루νλ 컨ν
μ΄λκ° iteractor()
ν¨μλ₯Ό μ§μνκΈ°λ§ νλ©΄ μ΄λ ν νμ
λ λ°λ³΅λ¬ΈμΌλ‘ μ¬μ©ν μ μλ€.
β» λ¬Έμ,λ°°μ΄ λ±μμ μ¬μ©ν μ μμ§λ§, νμ₯ λ©μ»€λμ¦μ μ¬μ©νμ¬ μ΄λ ν νμ
μ΄λ ν΄λΉ ν¨μλ₯Ό λ§λΆμΌ μ μλ€.
Iteractor
λ 컬λ μ
μ κΈ°λ³Έ ꡬ쑰λ₯Ό λ
ΈμΆνμ§ μκ³ μμ°¨μ μΌλ‘ μμμ λν μ‘μΈμ€λ₯Ό μ 곡νλ€.
꼬리 μ¬κ· ν¨μ(tail recursive)
μ½νλ¦°μ 꼬리 μ¬κ· ν¨μμ λν μ΅μ ν μ»΄νμΌμ μ§μνλ€.
μ¬κ· ν¨μλ μκΈ° μμ μ νΈμΆνλ ν¨μλ₯Ό μλ―Ένλ€. μ½λμ κ°λ
μ±μ΄ μ¦κ°νλ€λ μ₯μ μ΄ μμ§λ§ μ±λ₯μ°¨μμμ μ½κ°μ λΆκ° λΉμ©μ΄ λ°μνκ³ , μ€νμ€λ²νλ‘μ°
κ° λ°μν κ°λ₯μ±μ΄ μλ€.
μ€νμ€λ²νλ‘μ°
λ λ§ κ·Έλλ‘ Stack μ μ¬μ΄μ¦λ₯Ό μ΄κ³Όνμμ λ λ°μνλ€. ν¨μμμ μ§μλ³μ, νλΌλ―Έν° λ± μ¬λ¬κ°μ§λ₯Ό Stack μ ν λΉλκ³ ν¨μλ₯Ό νΈμΆνκ³ λμ λλ λ ν΄λΉ Stack μ μ κ±°νλ€.
κ·Έλ¬λ μ¬κ·ν¨μλ₯Ό ν΅ν΄ 무νμΌλ‘ ν¨μλ₯Ό νΈμΆνλ©΄ μ€νμ μ΅λ ν¬κΈ° μ΄μμ λ©λͺ¨λ¦¬λ₯Ό μ¬μ©νκ² λμ΄ μλ¬κ° λ°μνλ€.
μ½νλ¦°μμλ tailrec
ν€μλλ₯Ό ν¨μ μμ λΆμ΄λ©΄ μ»΄νμΌλ¬κ° μ¬κ· ν¨μλ₯Ό λΉμ¬κ·μ μΈ μ½λλ‘ μλμΌλ‘ λ³νν΄μ€λ€.
ν΄λΉ ν€μλ νλλ§μΌλ‘ μ¬κ· ν¨μμ κ°κ²°ν¨κ³Ό λΉμ¬κ· ν¨μμ μ±λ₯μ λͺ¨λ μ·¨ν μ μλ€.
Last updated