Deep_Dev
article thumbnail
[Swift ๊ธฐ์ดˆ] ์ œ๋„ค๋ฆญ ( Generic )

์ œ๋„ค๋ฆญ ์ œ๋„ค๋ฆญ์ด๋ž€ ? ํƒ€์ž…์— ์˜์กดํ•˜์ง€ ์•Š๋Š” ๋ฒ”์šฉ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ ํ•  ๋•Œ๋งˆ๋‹ค ์‚ฌ์šฉํ•œ๋‹ค. ์ œ๋„ค๋ฆญ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ค‘๋ณต์„ ํ”ผํ•˜๊ณ , ์ฝ”๋“œ๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. Apple์— ์˜ํ•˜๋ฉด Swift์—์„œ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์ค‘ ํ•˜๋‚˜์ด๋ฉฐ, Swift ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋Œ€๋‹ค์ˆ˜๋Š” ์ œ๋„ค๋ฆญ์œผ๋กœ ์„ ์–ธ๋˜์–ด ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Array, Dictionary ๋˜ํ•œ ์ œ๋„ค๋ฆญํƒ€์ž…์ด๋‹ค. ์ œ๋„ค๋ฆญ ํ•จ์ˆ˜ ๋‘๊ฐœ์˜ ์ธ์ž๋ฅผ ๋ฐ›์•„ Intํƒ€์ž…์˜ ๊ฐ’์„ swapํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค๋ฉด, func swapTwoInts(_ a: inout Int, _ b: inout Int) { let tempA = a a = b b = tempA } ์ด๋ ‡๊ฒŒ ๊ตฌํ˜„ํ•œ๋‹ค. ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋ชจ๋‘ Intํ˜• ์ผ๊ฒฝ์šฐ์—” ์ž˜ ๋Œ์•„๊ฐ€๋Š” ์ฝ”๋“œ์ด๋‹ค. ํ•˜์ง€๋งŒ ๋งŒ์•ฝ์— ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์ด Double, String์ผ ๊ฒฝ์šฐ์—”..

article thumbnail
[Swift]09 : Generic

๐Ÿ“– 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..