3๏ธโฃ Swift/Swift ์ ๋ฆฌ20 [Swift] ํด๋ก์ (Closure) ์ ๋ฆฌ (feat. sorted) swift๋ฅผ ์ฌ์ฉํ๋ฉฐ ์์ฃผ ๋ง์ด ์ฐ๋๊ฒ ํด๋ก์ ์ธ ๊ฒ ๊ฐ๊ณ ,, ๊ฐ์ธ์ ์ธ ์๊ฐ์ผ๋ก๋ ์ค์ํํธ์ ๋ชจ๋ ๋ฌธ๋ฒ?์ค์ ๊ฐ์ฅ ์ค์ํ๊ฒ ๋ฐ๋ก ํด๋ก์ ๋ผ๊ณ ์๊ฐํ๋ค,,!! ํ์ง๋ง ์์ง ์ ํํ ์ดํด๊ฐ ๋ถ์กฑํ ๊ฒ ๊ฐ๋ค.ใ ๋ฐ๋ผ์ ์ค๋์ ํด๋ก์ ์ ๋ํด ์์ธํ ๊ณต๋ถํด๋ณด๋ ค๊ณ ํ๋ค. ๐ ํด๋ก์ (Closure) ํด๋ก์ ๋ ๋ค๋ฅธ ์ธ์ด๋ค์ '๋๋ค'์ ๋น์ทํ ๊ฐ๋ ์ผ๋ก, ์ผ์ ๊ธฐ๋ฅ์ ํ๋ ์ฝ๋๋ฅผ ํ๋์ ๋ธ๋ก์ผ๋ก ๋ชจ์๋์ ๊ฒ์ ์๋ฏธํ๋ค. ์ด ์๊ธฐ๋ฅผ ๋ค์ผ๋ฉด ํจ์์๋?ํ๊ณ ์๊ฐํ๊ฒ ๋๋๋ฐ, ํจ์๋ ํด๋ก์ ์ ์ผ์ข ์ด๋ค. ๐ ํด๋ก์ ์๋ ํฌ๊ฒ ์ด ์ธ ๊ฐ์ง ํํ๊ฐ ์๋ค. ์ด๋ฆ์ด ์์ผ๋ฉด์ ์ด๋ค ๊ฐ๋ ํ๋ํ์ง ์์ - ์ ์ญํจ์์ ํํ ์ด๋ฆ์ด ์์ผ๋ฉด์ ๋ค๋ฅธ ํจ์์ ๋ด๋ถ ๊ฐ์ ํ๋ํ ์ ์์ - ์ค์ฒฉ๋ ํจ์์ ํํ ์ด๋ฆ์ด ์๊ณ ์ถ์ฝ ๋ฌธ๋ฒ์ผ๋ก ์ฐ์ฌ์ง๋ฉฐ ์ฃผ๋ณ ๋ฌธ๋งฅ์ .. 2021. 6. 30. [Swift] ์ผ๊ธ ๊ฐ์ฒด (First-class Citizen) ์ ๋ฆฌ ๊ณ ์ฐจํจ์, ํด๋ก์ ์ ๋ํด ๊ณต๋ถํ๋ ค๋ '์ผ๊ธ ๊ฐ์ฒด'์ ๋ํ ์ด์ผ๊ธฐ๊ฐ ๋ง์ด ๋ฑ์ฅํ๋ค. ์ ํํ ๊ฐ๋ ์ ์์งํ์ง ๋ชปํ ์ํ์์ ํด๋ก์ ์ ๊ณ ์ฐจํจ์๋ฅผ ์ฌ์ฉํด์์ง๋ง, ํ์คํ๊ฒ ์ ๋ฆฌํ์ง ์๊ณ ๋์ด๊ฐ๋ ๋ด์ฉ์ด ๊น์ด์ง์๋ก ์ดํด๊ฐ ์ด๋ ค์์ง๋๋ฏ ํ์ฌ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค. ๐ ์ผ๊ธ ๊ฐ์ฒด (First-class Citizen) ์ผ๊ธ ๊ฐ์ฒด๋ ์ด๋ฆ๋ง ๋ค์ด๋ณด๋ฉด ์ ์ผ ๋ฐ์ด๋?.. ๊ฐ์ฒด์ธ๊ฐ ํ๊ณ ์๊ฐํ๊ธฐ ์ฝ์ง๋ง, ์คํ๋ ค ๊ธ์ด ํ๋์ธ ๊ฐ์ฒด! ๋ผ๊ณ ์๊ฐํ๋ ๊ฒ์ด ๋ ์ ํฉํ๋ค. ๐ ์๋๋ ์ผ๊ธ ๊ฐ์ฒด๊ฐ ๋๊ธฐ ์ํ ์ถฉ์กฑ ์กฐ๊ฑด์ด๋ค. ์ ๋ฌ ์ธ์๋ก ์ ๋ฌ ๊ฐ๋ฅํ๋ค. ๋ณ์๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์์ ๋ด์ ์ ์๋ค. ๋ฐํ ๊ฐ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. ์์ ๋ด์ฉ์ ๋ณด๋ฉด ์ข ์ด๋ ค์ ๋ณด์ผ ์ ์์ง๋ง,, ํ ๋ง๋๋ก ์์ฝํ์๋ฉด, ๊ทธ๋ฅ ๋ณ์๋ ์์์ฒ๋ผ ์ฌ์ฉํ ์ ์์ด์ผ ํ๋ค๋ ๋ป์ด.. 2021. 6. 24. [Swift] sorted, joined ํจ์ ์ฌ์ฉ ์ ์ฃผ์ ์ฌํญ! ๋ด๊ฐ ๋ฌธ์์ด ๋ฌธ์ ๋ฅผ ํ๋ค๊ฐ sorted์ joined๋ฅผ ํจ๊ป ์ฐ๋ ค๊ณ ํ๋ ์ค๋ฅ๊ฐ ๋จ๋ ๊ฒ์ ๋ฐ๊ฒฌํ๋ค. ๊ทผ๋ฐ ๊ทธ ์ด์ ๋ฅผ ๋๋์ฒด ์ ์๊ฐ ์์ด์ ํ์ฐธ์ ๊ณ ๋ฏผํ๋ค,, ๊นจ๋ซ๊ณ ๋๋ ๊ฐ๋จํ ๋ด์ฉ์ด์์ง๋งใ ์์ผ๋ก ๋ฐ์ดํฐ ํ์ ์ ํ์คํ๊ฒ ์๊ณ ์ฌ์ฉํ์๋ ๋ฐ์ฑ์ ์๋ฏธ์์ ๊ธ์ ์์ฑํด๋ณด๋ ค ํ๋ค. ๐ ๋ด๊ฐ ํ๊ณ ์ถ์๋ ์์ ์ ๋ฌธ์์ด์ ์ ๋ ฌํ์ฌ ๋ฌธ์์ด๋ก ๋ฐํํ๋ ๊ฒ. ํ์ง๋ง ๋ฌธ์์ด์ ์ ๋ ฌํ์ฌ ๋ฐํํ ๋ฐฐ์ด์ ๋ค์ ๋ฌธ์์ด๋ก joinedํ๋ ๋ถ๋ถ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. ์ด๋ ๊ฒ,,!! (๋ฌผ๋ก String(String(num).sorted())๋ก ํด์ฃผ๋ฉด ์ถฉ๋ถํ์ง๋ง, ํ ๋ฒ ์๋ํด๋ดค๋ค๊ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํด์ ๊ถ๊ธํด์ ธ๋ฒ๋ ธ๋ค,,) ๋ด๊ฐ ์ฌ๊ธฐ์ ์ด ์ค๋ฅ์ ์์ธ์ ์ฐพ๋๋ฐ ์ค๋ ๊ฑธ๋ ธ๋ ์ด์ ๋, ๋ถ๋ช joined๋ [String] ํ์ ์ ์ ๋ ฅ ๊ฐ์ ์ฒ.. 2021. 6. 13. [Swift] ์ต์ ๋ ์ถ์ถ (๊ฐ์ ์ถ์ถ, ์ต์ ๋ ๋ฐ์ธ๋ฉ, ์ต์ ๋ ์ฒด์ด๋) ์ ๋ฆฌ ๋ด ๋ธ๋ก๊ทธ ์ฒซ ๊ธ๋ก ์ต์ ๋์ ๋ํ ๋ด์ฉ์ ์ ๋ก๋ํ์๋ค. ๊ทธ๋ ์๊ฐํ๊ธฐ๋ฅผ, ๋ด๊ฐ ์ค์ํํธ์ ๋ํด ๊ณต๋ถํ๋ค๋ณด๋ ?์ !๋ฅผ ์ ํ๊ฒ ๋์๋ค๊ณ ํ๋ ๊ธฐ์ต,, ๊ทธ ๋ ์ ?์ ๋ํด์ ์๊ฐ๋ฅผ ํ๋ค๋ฉด ๊ทธ์ ์ด์ด ์ค๋์ !์ ๋ํด ์ค๋ช ํด๋ณด๋ ค๊ณ ํ๋ค. ์ต์ ๋์ธ ๊ฐ์ ์ต์ ๋์ด ์๋ ๊ฐ์ผ๋ก ์ถ์ถํด์ฃผ๋ ๋ฐฉ๋ฒ๋ค์ ์ ๋ฆฌํด๋ณด์! (์ต์ ๋์ ๋ํด ๋ชจ๋ฅด์๋ ๋ถ์ด๋ผ๋ฉด ์ฌ๊ธฐ๐๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์!) 2021.06.06 - [๐ Swift Note/๐ Concept Summary] - [Swift] Optional(์ต์ ๋) ์ ๋ฆฌ [Swift] Optional(์ต์ ๋) ์ ๋ฆฌ ์ค์ํํธ ๊ณต๋ถ๋ฅผ ํ๋ค ๋ณด๋ ?, ๊ทธ๋ฆฌ๊ณ ! ์ด๋ฐ ๋ฌธ์ฅ ๋ถํธ๋ค์ด ๋ฑ์ฅํ๋ค. ์ค๋์ ๊ทธ ์ค ?์ ๋ํด ๋จผ์ ์ค๋ช ํด ๋ณด๋ ค ํ๋ค. ๐ ์ต์ ๋ ์ค์ํํธ๊ฐ ๊ฐ์ง๋ ๋ํ์ ์ธ ํน์ง์ผ๋ก ์์ ์ฑ์ด.. 2021. 6. 12. [Swift] Type Annotation๊ณผ Type Inference (ํ์ ์ด๋ ธํ ์ด์ ๊ณผ ํ์ ์ถ๋ก ) ์ค์ํํธ๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ค๋ณด๋ฉด ๊ฐ๋ Type Annotation์ ๊ดํ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๋๊ฐ ์๋ค. ๊ทธ๋ฆฌ๊ณ ๊ตฌ๊ธ๋ง ํ ๋๋ ์ด๋ ธํ ์ด์ ์ด๋ผ๋ ๋จ์ด๋ฅผ ๋ง์ด ๋ฐ๊ฒฌํ ์ ์์๋ค. ๊ทธ๋ฅ ๋ฌธ๋งฅ ์ ๋ณ์ ์์ฑ์ ํ์ ์ ์ง์ ํด์ฃผ๋ ๊ฒ์ ๋ปํ๋ค๊ณ ์ดํดํ๊ณ ์์๋๋ฐ, ์ค๋์ ์ค์ํํธ์ Type Annotation๊ณผ Inference์ ๋ํด ์ ํํ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค. ๐ Type Annotation (ํ์ ์ด๋ ธํ ์ด์ ) ์ค์ํํธ์์๋ ๋ณ์ ํน์ ์์๋ฅผ ์์ฑํ ๋ ๋ณ์ ์ ์ธ ์์๋ var [๋ณ์๋ช ]: [๋ฐ์ดํฐ ํ์ ] = [๊ฐ]์ ํํ๋ก, ์์ ์ ์ธ ์์๋ let [์์๋ช ]: [๋ฐ์ดํฐ ํ์ ] = [๊ฐ]์ ํํ๋ก ์์ฑํ๋ค. // ๋ณ์ ์์ฑ var a1: Int var a2: Int = 0 // ์์ ์์ฑ let b1: Int let.. 2021. 6. 11. ์ด์ 1 2 3 4 ๋ค์