[swift] 11. Closure

λͺ½μ΄ λˆ„λ‚˜Β·2022λ…„ 4μ›” 23일
0

swift 기초 문법

λͺ©λ‘ 보기
11/17
post-thumbnail

πŸ“– Closure (ν΄λ‘œμ €)

πŸ“Œ Closureλž€

πŸ’¬ ν΄λ‘œμ €λŠ” 크게 두 가지 μ’…λ₯˜λ‘œ λ‚˜λˆŒ μˆ˜κ°€ μžˆμŠ΅λ‹ˆλ‹€.

  • Named Closure
  • Unnamed Closure

이름이 μžˆλŠ” λ³΄ν†΅μ˜ ν•¨μˆ˜(μš°λ¦¬κ°€ μ•Œκ³  μžˆλŠ” ν•¨μˆ˜λ“€)λŠ” Named Closure 이고,
이름이 μ—†λŠ” ν•¨μˆ˜λ“€μ„ Unnamed Closure (읡λͺ… ν•¨μˆ˜) 라고 ν•©λ‹ˆλ‹€.
보톡 ν΄λ‘œμ €λ₯Ό 말할 λ•ŒλŠ” Unnamed된 ν•¨μˆ˜λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.


πŸ“Œ Closure ν‘œν˜„μ‹

{(Parameters) -> Return Type in μ‹€ν–‰ ꡬ문}

πŸ’¬ 읡λͺ…이기 λ•Œλ¬Έμ— funcλΌλŠ” ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 것이 νŠΉμ§•μž…λ‹ˆλ‹€.


πŸ“Œ String을 λ°˜ν™˜ν•˜λŠ” Closure

ex)

let myName : String = {
    // myName으둜 λ“€μ–΄κ°„λ‹€
    return "λͺ½μ΄ λˆ„λ‚˜"
}()

print(myName)

>>> λͺ½μ΄ λˆ„λ‚˜

πŸ“Œ Closure μ •μ˜ μ΄ν•΄ν•˜κΈ°

ex)

let myRealName : (String) -> String = { (name:String) -> String in
    return "κ°œλ°œν•˜λŠ” \(name)"
}

print(myRealName("λͺ½μ΄ λˆ„λ‚˜"))

>>> κ°œλ°œν•˜λŠ” λͺ½μ΄ λˆ„λ‚˜

πŸ“Œ Logic 처리

ex)

let myRealNameLogic : (String) -> Void = { (name : String) in
    print("κ°œλ°œν•˜λŠ” \(name)")
}

myRealNameLogic("λͺ½μ΄ μ•„λΉ ")

>>> κ°œλ°œν•˜λŠ” λͺ½μ΄ μ•„λΉ 

πŸ’¬ λ°˜ν™˜κ°’μ„ 내어놓지 μ•Šκ³  λ‘œμ§μ„ 담을 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.
πŸ’¬ 내어놓지 μ•Šμ„ 경우 Void 둜 ν‘œν˜„ν•©λ‹ˆλ‹€.


참고 자료

profile
λͺ½μ΄ λˆ„λ‚˜μ˜ μ½”λ”© 일기

0개의 λŒ“κΈ€