πŸ‘©πŸ»‍πŸ’»/Swift

17. ν΄λ‘œμ € κ³ κΈ‰ - iOS ν”„λ‘œκ·Έλž˜λ°μ„ μœ„ν•œ μŠ€μœ„ν”„νŠΈ 기초

reujusong 2020. 6. 19. 15:09

ν΄λ‘œμ €λŠ” μ•„λž˜ κ·œμΉ™μ„ 톡해 λ‹€μ–‘ν•œ λͺ¨μŠ΅μœΌλ‘œ ν‘œν˜„λ  수 μžˆλ‹€.

  1. ν›„ν–‰ ν΄λ‘œμ € : ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜ λ§ˆμ§€λ§‰μœΌλ‘œ μ „λ‹¬λ˜λŠ” ν΄λ‘œμ €λŠ” ν›„ν–‰ν΄λ‘œμ €(trailing closure)둜 ν•¨μˆ˜ 밖에 κ΅¬ν˜„ν•  수 μžˆλ‹€.
  2. λ°˜ν™˜νƒ€μž… μƒλž΅ : μ»΄νŒŒμΌλŸ¬κ°€ ν΄λ‘œμ €μ˜ νƒ€μž…μ„ μœ μΆ”ν•  수 μžˆλŠ” 경우 λ§€κ°œλ³€μˆ˜, λ°˜ν™˜ νƒ€μž…μ„ μƒλž΅ν•  수 μžˆλ‹€.
  3. 단좕 인자 이름 : μ „λ‹¬μΈμžμ˜ 이름이 ꡳ이 ν•„μš”μ—†κ³ , μ»΄νŒŒμΌλŸ¬κ°€ νƒ€μž…μ„ μœ μΆ”ν•  수 μžˆλŠ” 경우 μΆ•μ•½λœ μ „λ‹¬μΈμž 이름($0, $1, $2...)을 μ‚¬μš© ν•  수 μžˆλ‹€.
  4. μ•”μ‹œμ  λ°˜ν™˜ ν‘œν˜„ : λ°˜ν™˜ 값이 μžˆλŠ” 경우, μ•”μ‹œμ μœΌλ‘œ ν΄λ‘œμ €μ˜ 맨 λ§ˆμ§€λ§‰ 쀄은 return ν‚€μ›Œλ“œλ₯Ό μƒλž΅ν•˜λ”λΌλ„ λ°˜ν™˜ κ°’μœΌλ‘œ μ·¨κΈ‰ν•œλ‹€.

 

κΈ°λ³Έ ν΄λ‘œμ € ν‘œν˜„

 

// ν΄λ‘œμ €λ₯Ό λ§€κ°œλ³€μˆ˜λ‘œ κ°–λŠ” ν•¨μˆ˜ calculated(a:b:method:)와 결과값을 μ €μž₯ν•  λ³€μˆ˜ result μ„ μ–Έ
func calculate(a: Int, b: Int, method: (Int, Int) -> Int) -> Int {
    return method(a, b)
}

var result: Int

 

 

- ν›„ν–‰ ν΄λ‘œμ €

ν΄λ‘œμ €κ°€ ν•¨μˆ˜μ˜ λ§ˆμ§€λ§‰ μ „λ‹¬μΈμžμΌλ•Œ, λ§ˆμ§€λ§‰ λ§€κ°œλ³€μˆ˜ 이름을 μƒλž΅ν•œ ν›„ ν•¨μˆ˜ μ†Œκ΄„ν˜Έ 외뢀에 ν΄λ‘œμ €λ₯Ό κ΅¬ν˜„ν•  수 μžˆλ‹€.

 

 

 

 - λ°˜ν™˜νƒ€μž… μƒλž΅

calculate(a:b:method:) ν•¨μˆ˜μ˜ method λ§€κ°œλ³€μˆ˜λŠ” Int νƒ€μž…을 λ°˜ν™˜ν•  κ²ƒμ΄λΌλŠ” 사싀을 μ»΄νŒŒμΌλŸ¬λ„ μ•ŒκΈ° λ•Œλ¬Έμ— ꡳ이 ν΄λ‘œμ €μ—μ„œ λ°˜ν™˜νƒ€μž…μ„ λͺ…μ‹œν•΄ 주지 μ•Šμ•„λ„ λœλ‹€. λŒ€μ‹  in ν‚€μ›Œλ“œλŠ” μƒλž΅ν•  수 μ—†λ‹€.

 

 

 

- 단좕 μΈμžμ΄λ¦„

ν΄λ‘œμ €μ˜ λ§€κ°œλ³€μˆ˜ 이름이 ꡳ이 λΆˆν•„μš”ν•˜λ‹€λ©΄ 단좕 μΈμžμ΄λ¦„μ„ ν™œμš©ν•  수 μžˆλ‹€. 단좕 μΈμžμ΄λ¦„μ€ ν΄λ‘œμ €μ˜ λ§€κ°œλ³€μˆ˜μ˜ μˆœμ„œλŒ€λ‘œ $0, $1, $2... 처럼 ν‘œν˜„ν•œλ‹€. 

 

 

 

- μ•”μ‹œμ  λ°˜ν™˜ ν‘œν˜„

ν΄λ‘œμ €κ°€ λ°˜ν™˜ν•˜λŠ” 값이 μžˆλ‹€λ©΄ ν΄λ‘œμ €μ˜ λ§ˆμ§€λ§‰ μ€„μ˜ 결과값은 μ•”μ‹œμ μœΌλ‘œ λ°˜ν™˜κ°’μœΌλ‘œ μ·¨κΈ‰ν•œλ‹€.

 

 

 

**μΆ•μ•½ μ „κ³Ό ν›„ 비ꡐ**

 

//μΆ•μ•½ μ „
result = calculate(a: 10, b: 10, method: { (left: Int, right: Int) -> Int in
    return left + right
})

//μΆ•μ•½ ν›„
result = calculate(a: 10, b: 10) { $0 + $1 }

 

* λ„ˆλ¬΄ μΆ•μ•½λœ μ½”λ“œλŠ” 타인이 λ³΄κ±°λ‚˜, μ‹œκ°„μ΄ μ§€λ‚œ 뒀에 λ³Ό λ•Œ λͺ…μ‹œμ„±μ΄ λ–¨μ–΄μ§ˆ 수 μžˆμœΌλ―€λ‘œ μ μ •μ„ μ—μ„œ μΆ•μ•½ν•˜λ„λ‘ ν•œλ‹€.