[KOTLIN] ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°

ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ° κ°œλ… 


ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ΄λž€?

코틀린은 ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°κ³Ό 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ„ λͺ¨λ‘ μ§€μ›ν•˜λŠ” 닀쀑 νŒ¨λŸ¬λ‹€μž„ μ–Έμ–΄ 
ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ€ 순수 ν•¨μˆ˜λ₯Ό μž‘μ„±ν•˜μ—¬ ν”„λ‘œκ·Έλž¨μ˜ λΆ€μž‘μš©μ„ μ€„μ΄λŠ” ν”„λ‘œκ·Έλž˜λ° 기법을 μ˜λ―Έν•¨ 
ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ—μ„œλŠ” λžŒλ‹€μ‹κ³Ό κ³ μ°¨ ν•¨μˆ˜λ₯Ό μ‚¬μš© 

 

순수 ν•¨μˆ˜


순수 ν•¨μˆ˜λž€?

ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ€ 순수 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μžλŠ” κ²ƒμ—μ„œ μ‹œμž‘λ¨
만일 μ–΄λ–€ ν•¨μˆ˜κ°€ 같은 μΈμžμ— λŒ€ν•˜μ—¬ 항상 같은 κ²°κ³Όλ₯Ό λ°˜ν™˜ν•˜λ©΄ 'λΆ€μž‘μš©μ΄ μ—†λŠ” ν•¨μˆ˜'라고 말함 
'λΆ€μž‘μš©μ΄ μ—†λŠ” ν•¨μˆ˜'κ°€ ν•¨μˆ˜ μ™ΈλΆ€μ˜ μ–΄λ–€ μƒνƒœλ„ 바꾸지 μ•ŠλŠ”λ‹€λ©΄ 순수 ν•¨μˆ˜λΌκ³  함 
μ΄λŸ¬ν•œ νŠΉμ„±μœΌλ‘œ μŠ€λ ˆλ“œμ— μ‚¬μš©ν•΄λ„ μ•ˆμ „ν•˜κ³ , ν…ŒμŠ€νŠΈν•˜κΈ°λ„ μ‰½λ‹€λŠ” μž₯점이 있음 

 

λžŒλ‹€μ‹


λžŒλ‹€μ‹μ΄λž€? 

ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ—μ„œ μ‚¬μš©λ˜λŠ” κ°œλ… 
μˆ˜ν•™μ—μ„œ λ§ν•˜λŠ” λžŒλ‹€ λŒ€μˆ˜λ‘œλΆ€ν„° 유래됨
λ‹€λ₯Έ ν•¨μˆ˜μ˜ 인자둜 λ„˜κΈ°λŠ” ν•¨μˆ˜, ν•¨μˆ˜μ˜ κ²°κ³Όκ°’μœΌλ‘œ λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜, λ³€μˆ˜μ— μ €μž₯ν•˜λŠ” ν•¨μˆ˜λ₯Ό μ˜λ―Έν•¨

 

λžŒλ‹€μ‹μ˜ ν˜•νƒœ

일급 객체 


일급 κ°μ²΄λž€?

ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ—μ„œλŠ” ν•¨μˆ˜λ₯Ό 일급 객체둜 생각함 
λžŒλ‹€μ‹ μ—­μ‹œ 일급 객체의 νŠΉμ§•μ„ 가지고 있음 
λ‹€μŒκ³Ό 같은 νŠΉμ§•μ„ λ§Œμ‘±ν•˜λŠ” 것을 일급 객체라고 함 
  1. 일급 κ°μ²΄λŠ” ν•¨μˆ˜μ˜ 인자둜 전달할 수 있음 
  2. 일급 κ°μ²΄λŠ” ν•¨μˆ˜μ˜ λ°˜ν™˜κ°’μ— μ‚¬μš©λ  수 있음 
  3. 일급 κ°μ²΄λŠ” λ³€μˆ˜μ— 담을 수 있음 

 

일급 ν•¨μˆ˜ 

  • 일급 객체의 νŠΉμ§•μ„ λ§Œμ‘±ν•˜λŠ” ν•¨μˆ˜λ₯Ό 일급 ν•¨μˆ˜λΌκ³  뢀름 
  • 일급 ν•¨μˆ˜μ— 이름이 μ—†λŠ” 경우λ₯Ό λžŒλ‹€μ‹ ν•¨μˆ˜ ν˜Ήμ€ λžŒλ‹€μ‹μ΄λΌκ³  λΆ€λ₯Ό 수 있음 

 

κ³ μ°¨ ν•¨μˆ˜ 


κ³ μ°¨ ν•¨μˆ˜λž€?

λ‹€λ₯Έ ν•¨μˆ˜λ₯Ό 인자둜 μ‚¬μš©ν•˜κ±°λ‚˜ ν•¨μˆ˜λ₯Ό κ²°κ³Όκ°’μœΌλ‘œ λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜λ₯Ό μ˜λ―Έν•¨ 
두 νŠΉμ§•μ„ λͺ¨λ‘ κ°–κ³  μžˆμ–΄λ„ κ³ μ°¨ ν•¨μˆ˜μž„ 
즉, 일급 객체 ν˜Ήμ€ 일급 ν•¨μˆ˜λ₯Ό μ„œλ‘œ 주고받을 수 μžˆλŠ” ν•¨μˆ˜κ°€ κ³ μ°¨ ν•¨μˆ˜κ°€ 될 수 있음

 

κ³ μ°¨ ν•¨μˆ˜μ˜ μ˜ˆμ‹œ(인자둜 일급 ν•¨μˆ˜κ°€ λ“€μ–΄κ°€κ²Œ 됨)

 

REFERENCE

DO it! μ½”ν‹€λ¦° ν”„λ‘œκ·Έλž˜λ°, μ΄μ§€μŠ€ 퍼블리싱, ν™©μ˜λ• μ§€μŒ