๐ iOS/๊ธฐ์ด๋ฌธ๋ฒ
[Swift]10 : Closure
deep_lee
2022. 12. 6. 15:38
๐ Day 10 : Closure ( ํด๋ก์ )
๐ก Closure
- Named Closure
- Unnamed Closure
์ด๋ฆ์ด ์๋ ๋ณดํต์ ํจ์๋ Named Closure ์ด๊ณ ,
์ด๋ฆ์ด ์๋ ํจ์๋ค์ unNamedClosure (์ต๋ช ํจ์) ๋ผ๊ณ ํ๋ค.
๋ณดํต ํด๋ก์ ๋ unNamed๋ ํจ์๋ฅผ ๋งํ๋ค.
๐ Closure ํํ์
์ต๋ช ์ด๊ธฐ ๋๋ฌธ์ func๋ผ๋ ํค์๋๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค.
{
(Parameters) -> ReturnType in ์คํ๊ตฌ๋ฌธ
}
๐ String์ ๋ฐํํ๋ Closure
let myName : String ={
// myName์ผ๋ก ๋ค์ด๊ฐ๋ค
return "์ค์ํํธ"
}()
print(myName)
>>> ์ค์ํํธ
๐ Closure ์ ์ ์ดํดํ๊ธฐ
let myRealName : (String) -> String = { (name:String) -> String in
return "๊ฐ๋ฐํ๋ \(name)"
}
print(myRealName("์ค์ํํธ"))
>>> ๊ฐ๋ฐํ๋ ์ค์ํํธ
๐ Locig ์ฒ๋ฆฌ
๐ฌ ๋ฐํ๊ฐ์ ๋ฐ๋ก ์ฒ๋ฆฌํ์ง์๊ณ ๋ก์ง์ ๋ด์ ์ ๋ ์๋ค.
๐ฌ ๋ฐํ๊ฐ์ด ์์ ๊ฒฝ์ฐ Void ๋ก ํํํ๋ค.
ley myRealNameLogic : (String) -> Void = { (name:String) in
print("๊ฐ๋ฐํ๋ \(name)")
}
myRealNameLogic("์ค์ํํธ")
>>> ๊ฐ๋ฐํ๋ ์ค์ํํธ
์ถ์ฒ : ๊ฐ๋ฐํ๋์ ๋๋ฆฌ, ์ ๋๋ฆฌ์ค์ํํธ๊ธฐ์ด๋ฌธ๋ฒ