Deep_Dev

๐Ÿ“– 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("์Šค์œ„ํ”„ํŠธ")

>>> ๊ฐœ๋ฐœํ•˜๋Š” ์Šค์œ„ํ”„ํŠธ

 

 

 

 

 

 

 

์ถœ์ฒ˜ : ๊ฐœ๋ฐœํ•˜๋Š”์ •๋Œ€๋ฆฌ, ์ •๋Œ€๋ฆฌ์Šค์œ„ํ”„ํŠธ๊ธฐ์ดˆ๋ฌธ๋ฒ•