๐ Day 11 : ๋งค๊ฐ๋ณ์๋ก์ ํด๋ก์ ๐ก Closure ๐ Closure ํํ์ ์ต๋ช ์ด๊ธฐ ๋๋ฌธ์ func๋ผ๋ ํค์๋๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค.
๐ 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)..
๐ Day 09 : Generic ( ์ ๋ค๋ฆญ ) ๐ก Generic : ์ด๋ ํ ์๋ฃํ์ด๋ ๋ฐ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋, ๋ฒ์ฉ ์ฝ๋๋ฅผ ์์ฑํ ๋ ์ฌ์ฉ ๐ ์ ๋ค๋ฆญ ํจ์ ์ ๋ค๋ฆญ์ ์ ํตํด ๋ํ๋ด๊ณ , ์ด ์์ ํ์ ์ฒ๋ผ ์ฌ์ฉํ ์ด๋ฆ์ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค. ๋ณดํต์ T๋ฅผ ๋ง์ด ๋ฃ๋๋ค. ๐ฌ ๋ค์ํ Type ์์ ์ถ๋ ฅ var mySomeArray = MyArray([1,2,3]) print("mySomeArray : \(mySomeArray)") var myStringArray = MyArray(["๊ฐ", "๋"]) print("myStringArray : \(myStringArray)") >>> mySomeArray : MyArray(elements: [1, 2, 3]) >>> myStringArray : MyArray(eleme..
๐ Day 08 : ํจ์ ๋งค๊ฐ๋ณ์ ์ด๋ฆ ๐ ํจ์ ๋งค๊ฐ๋ณ์ ์ด๋ฆ ์ค์ func myFunction(name : String) -> String{ return "์๋ ํ์ธ์?! \(name) ์ ๋๋ค!" } myFunction(name:"Deep_Lee") // >>> ์๋ ํ์ธ์?! Deep_Lee์ ๋๋ค! ๐ฌ name : ๋งค๊ฐ๋ณ์ ์ด๋ฆ, ->๋ String์ ๋ฐํํ๋ค๋ ๋ป ๐ ์ ๋ฌ ์ธ์ ๋ ์ด๋ธ func myFunctionSecond(myName name:String)-> String{ return "์๋ ํ์ธ์?! \(name) ์ ๋๋ค!" } myFunctionSecond(with : "์ค์ํํธ") // >>> ์๋ ํ์ธ์?! ์ค์ํํธ์ ๋๋ค! ๐ฌ ๊ฐ์ ๋ฉ์๋์ด์ง๋ง ์ด๋ฆ์ ๋ฐ๊ฟ ์ ์๋ค. ๐ฌ with๋ผ๋ ์ ๋ฌ์ธ์ ๋ ..
๐ Day 07 : Property Observer ( ํ๋กํผํฐ ์ต์ ๋ฒ ) ๐ Property Observer : ํน์ฑ ๊ด์ฐฐ์ ์ฆ, ํ๋กํผํฐ ๊ฐ์ ๋ณํ๋ฅผ ๊ด์ฐฐํ๋ค๋ ๊ฒ์ด๋ค. ๐ก 2๊ฐ์ง ์ต์ willSet : ๊ฐ์ด ์ ์ฅ๋๊ธฐ ์ง์ ์ ํธ์ถ didSet : ์ ๊ฐ์ด ์ ์ฅ๋ ์งํ์ ํธ์ถ
๐ Day 06 : Class vs Struct ์ฐจ์ด struct๋ ๋ณต์ฌ, class๋ ๊ณต์ ์ฆ, struct๋ ์ฐธ์กฐํ๋ ๊ฐ์ด ๋ฐ๋์ด๋ ๊ธฐ์กด์ ๊ฐ์ ์ํฅ์ ๋ฏธ์น์ง ์๊ณ class๋ ์ํฅ์ ๋ฏธ์น๋ค. ์ถ๋ ฅ ๊ฒฐ๊ณผ ๊ธฐ์กด ๊ฐ์ฒด A์ ์ด ๊ฐ์ฒด๋ฅผ ๋ณต์ฌํ ํด๋ก A๊ฐ ์์๋, struct์ ๊ฒฝ์ฐ -> ํด๋ก A์ ๊ฐ์ ๋ณ๊ฒฝํด๋, ๊ธฐ์กด๊ฐ์ฒด A์ ์ํฅ์ด ๊ฐ์ง ์๋๋ค. class์ ๊ฒฝ์ฐ -> ํด๋ก A์ ๊ฐ์ ๋ณ๊ฒฝํ๋ฉด, ๊ธฐ์กด๊ฐ์ฒด A์๋ ์ํฅ์ด ๊ฐ๋ค. ๐กStruct struct๋ ๋ณต์ ํ๋ฉด ๋ค๋ฅธ ๊ฐ์ฒด์ ์ํฅ์ ์ฃผ์ง ์๋๋ค. ๐กClass class๋ ์๋ก ์ฐ๊ฒฐ๋์ด ์๋ค. ๋ณธ ๋ฐ์ ๋๊ฐ์๊ฑธ ๋ง๋ค๊ณ ํ ์ชฝ์ ํผ์ํ๋ฉด, ๋ค๋ฅธ ํ ์ชฝ๋ํผ์๋๋ฉฐ ๋ด๊ฐ ์์ ํ ๋ด์ฉ์ ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋ค ๋ณผ ์ ์๋ค. ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์งํ๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ค. ์ถ์ฒ:๊ฐ..
๐Day 05 : Optional Unwrap ์ฌ์ฉ๋ฐฉ๋ฒ ๐กOptional : ๊ฐ์ด ์๋์ง ์๋์ง ๋ชจ๋ฅธ๋ค. ๐กUnwrapping : ๋ฉ. ์ฆ, ๊ฐ์ธ์ ธ์๋ ๊ฒ์ ๋ฒ๊ธฐ๋ ๊ฒ 1. someVariable์ ๊ฐ์ ์์ง ์ค์ ํ์ง ์์๋ค. ( ๊ฐ์ด ๋น์๋ค ) 2. someVaraible==nil ( ๊ฐ์ด ๋น์ด์๋ค๋ฉด ) =90 ( ๊ฐ์ ํ ๋น ) 3. someVaraible์ ๊ฐ์ด ์๋ค๋ฉด, ๋ณ์ otherVariable ๊ฐ ๋์ ๐กsomeVariable์ unWrapping ์ ์ ์ถ๋ ฅํด๋ณธ๋ค๋ฉด ? someVariable์ด Optional๋ก ๊ฐ์ ๊ฐ์ธ๊ณ ์์๋๋ฐ, ์ด๋ฅผ ์ธ๋ํํ์ฌ ๋ฒ๊ฒผ๊ธฐ๋๋ฌธ์ otherVaraible ์๋ ์๋งน์ด์ธ 90๋ง ๋์ค๋ ๊ฒ์ด๋ค.