๋ฐ์ํ โจ๏ธ Language/swift251 [Swift] ์ ๋ค๋ฆญ ์ ๋ค๋ฆญ(Generics)์ ์ฐํ๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ํจ์์ ํ์ ์ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ ๊ฐ๋ฅํ๊ฒ ํจ์ธ์๊ฐ์ ํ์ ๋ง ๋ค๋ฅด๊ณ ๋์ผํ ๊ธฐ๋ฅ์ ์ํํ๋ ํจ์๋ฅผ ํ๋๋ก ๋ง๋ค ์ ์์ ์ ๋ค๋ฆญ ํจ์(Generic Functions)ํจ์๋ช ๋ค์ ํ์ ์ด๋ฆ placeholder์ธ T๋ฅผ ์ ์ธํ๊ณ a,b ํ๋ผ๋ฏธํฐ๋ฅผ T๋ก ์ ์ธfunc swapTwoValues(_ a: inout T, _ b: inout T) { let temporaryA = a a = b b = temporaryA}var someInt = 3var anotherInt = 107swapTwoValues(&someInt, &anotherInt)// someInt is now 107, and anotherInt is now 3var someString .. 2024. 4. 2. [Swift] ํ๋กํ ์ฝ ํ๋กํ ์ฝ(Protocols)์ด๋ค ๊ธฐ๋ฅ์ ํ์ํ ์๊ตฌ์ฌํญ์ ์ ์ธํด๋๋ ๊ฒํด๋์ค, ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐํ์ ์ํด ์ฑํํ๋กํ ์ฝ ๋ฌธ๋ฒprotocol SomeProtocol {// protocol definition}ํ๋กํ ์ฝ์ ๋ฐ๋ฅด๋ ํ์ ์ ์ ์ํ๊ธฐ ์ํด์๋ ํ์ ์ด๋ฆ ๋ค์ ์ฝ๋ก (:)์ ๋ถ์ด๊ณ ํ๋กํ ์ฝ ์ด๋ฆ์ ์ ์ํ๋กํ ์ฝ์ ์ฑํํ ๋๋ ํ๋กํ ์ฝ์ ์ ์๋ ์๊ตฌ์ฌํญ์ ๋ฐ๋์ ๊ตฌํ ํด์ผ๋ง ํจ struct SomeStructure: FirstProtocol, AnotherProtocol { // structure definition goes here}class SomeClass: SomeSuperclass, FirstProtocol, AnotherProtocol { // class definition goes her.. 2024. 3. 29. [Swift] ์๋ฌ ์ฒ๋ฆฌ ์๋ฌ์ ํ์์ ๋ฐ์enum VendingMachineError: Error { case invalidSelection case insufficientFunds(coinsNeeded: Int) case outOfStock}throw VendingMachineError.insufficientFunds(coinsNeeded: 5) ์๋ฌ ์ฒ๋ฆฌ์๋ฌ๊ฐ ๋ฐ์ํ ํจ์์์ ๋ฆฌํด๊ฐ์ผ๋ก ์๋ฌ๋ฅผ ๋ฐํํด ํด๋น ํจ์๋ฅผ ํธ์ถํ ์ฝ๋์์ ์๋ฌ๋ฅผ ์ฒ๋ฆฌํ๋๋ก ํ๋ ๋ฐฉ๋ฒdo-catch ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ต์ ๋ ๊ฐ์ ๋ฐํํ๋ ๋ฐฉ๋ฒassert๋ฅผ ์ฌ์ฉํด ๊ฐ์ ๋ก ํฌ๋์ฌ๋ฅผ ๋ฐ์์ํค๋ ๋ฐฉ๋ฒ์๋ฌ๋ฅผ ๋ฐ์์ํค๋ ํจ์ ์ฌ์ฉํ๊ธฐ์ด๋ค ํจ์, ๋ฉ์๋ ํน์ ์์ฑ์๊ฐ ์๋ฌ๋ฅผ ๋ฐ์์ํฌ ์ ์๋ค๋ ๊ฒ์ ์๋ฆฌ๊ธฐ ์ํด throw ํค์๋๋ฅผ ํจ์ ์ ์ธ.. 2024. 3. 28. [Swift] ์ต์ ๋ ์ฒด์ด๋ ์ต์ ๋ ์ฒด์ด๋nil์ผ ์๋ ์๋ ํ๋กํผํฐ๋, ๋ฉ์๋ ๊ทธ๋ฆฌ๊ณ ์๋ธ์คํฌ๋ฆฝํธ์ ์ง์(query)๋ฅผ ํ๋ ๊ณผ์ ๋ง์ฝ ์ต์ ๋์ด ํ๋กํผํฐ๋ ๋ฉ์๋ ํน์ ์๋ธ์คํฌ๋ฆฝํธ์ ๋ํ ๊ฐ์ ๊ฐ๊ณ ์๋ค๋ฉด ๊ทธ ๊ฐ์ ๋ฐํํจ๋ง์ฝ ๊ฐ์ด nil์ด๋ผ๋ฉด nil ๋ฐํ ๊ฐ์ ์ธ๋ํ์ ๋์ฒด๋ก์จ์ ์ต์ ๋ ์ฒด์ด๋์ต์ ๋ ๊ฐ ๋ค์ ๋ฌผ์ํ(?)๋ฅผ ๋ถ์ฌ์ ํํ ๊ฐ๋ฅ์ต์ ๋์ ์ฌ์ฉํ ์ ์๋ ๊ฐ์๋ ํ๋กํผํฐ, ๋ฉ์๋ ๊ทธ๋ฆฌ๊ณ ์๋น์คํฌ๋ฆฝํธ๊ฐ ํฌํจ์ต์ ๋ ๊ฐ์ ๊ฐ์ ์ธ๋ํํ๊ธฐ ์ํด ๋ค์ ๋๋ํ(!)๋ฅผ ๋ถ์ด๋ ๊ฒ๊ณผ ์ ์ฌ๊ฐ์ ์ธ๋ํ์ ํ๋๋ฐ ๋ง์ฝ ๊ทธ ๊ฐ์ด ์์ผ๋ฉด ๋ฐํ์ ์๋ฌ ๋ฐ์์ต์ ๋ ์ฒด์ด๋์ ์ฌ์ฉํ๋ฉด ๋ฐํ์ ์๋ฌ ๋์ nil์ด ๋ฐํclass Person { var residence: Residence?}class Residence { var numberOfRo.. 2024. 3. 26. [Swift] ์ด๊ธฐํ ์ด๊ธฐํ (Initialization)ํด๋์ค, ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐํ ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์ค๋น ์์ ์ ํ๋ ๋จ๊ณ๊ฐ ์ ์ฅ ํ๋กํผํฐ์ ์ด๊ธฐ ๊ฐ์ ์ค์ →initializer๋ฅผ ์ ์ ํ๋ ๊ฒ์ผ๋ก ๊ตฌํ ์ ์ฅ ํ๋กํผํฐ๋ฅผ ์ํ ์ด๊ธฐ๊ฐ ์ค์ ์ธ์คํด์ค์ ์ ์ฅ ํ๋กํผํฐ๋ ์ฌ์ฉํ๊ธฐ ์ ๋ฐ๋์ ํน์ ๊ฐ์ผ๋ก ์ด๊ธฐํ ๋ผ์ผ ํจ (๊ธฐ๋ณธ ๊ฐ์ผ๋ก ์ค์ /ํน์ ๊ฐ์ผ๋ก ์ค์ ๊ฐ๋ฅ)NOTEinitializer์์ ์ ์ฅ ํ๋กํผํฐ์ ๊ฐ์ ์ง์ ์ค์ ํ๋ฉด ํ๋กํผํฐ ์ต์ ๋ฒ๊ฐ ํธ์ถ๋์ง ์๊ณ ๊ฐ ํ ๋น์ด ์ํ ์ด๋์ ๋ผ์ด์ ํน์ ํ์ ์ ์ธ์คํด์ค ์์ฑ (์ด๋์ ๋ผ์ด์ ์ ๊ฐ์ฅ ๊ฐ๋จํ ํํ_ ํ๋ผ๋ฏธํฐ ์์ด init ํค์๋ ์ฌ์ฉ)init() {// perform some initialization here}๊ธฐ๋ณธ ํ๋กํผํฐํ๋กํผํฐ ์ ์ธ๊ณผ ๋์์ ๊ฐ์ ํ ๋น, ์ด ๊ฐ์ ์ด๊ธฐ ๊ฐ์ผ.. 2024. 3. 25. [Swift] ์์ ์์(Inheritance)ํด๋์ค์์ ๋ค๋ฅธ ํด๋์ค๋ก ๋ถํฐ ์์ํ ์ ์์ํด๋์ค์์ ์ ์ฅ ํ๋กํผํฐ, ๊ณ์ฐ ํ๋กํผํฐ ์๊ด์์ด ์์ ๋ฐ์ ํ๋กํผํฐ์ ํ๋กํผํฐ ์ต์ ๋ฒ๋ฅผ ์ฌ์ฉํด ๊ฐ ์ค์ ์ ๋ฐ์ํ ์ ์์๊ธฐ๋ฐํด๋์ค๋ค๋ฅธ ์ด๋ค ํด๋์ค๋ก๋ถํฐ ์์๋ฐ์ง ์์ ํด๋์ค SomeSuperclass์๋ธํด๋์ฑ๋ถ๋ชจ๋ก ๋ถํฐ ์ฑ๊ฒฉ์ ์์๋ฐ๊ณ ์์ ๊ณ ์ ์ ํน์ฑ๋ ์ถ๊ฐํ ์ ์์class SomeSubclass: SomeSuperclass { // subclass definition goes here}์๋ธํด๋์ฑ์ ๊ณ์ํ ์ ์์ ์ค๋ฒ๋ผ์ด๋ฉ (Overriding)์๋ธํด๋์ค์์ ๋ถ๋ชจํด๋์ค์์ ์์๋ฐ์ ๊ฒ์ ์ฌ์ ์์ธ์คํด์ค, ๋ฉ์๋, ํ์ ๋ฉ์๋, ์ธ์คํด์ค ํ๋กํผํฐ, ํ์ ํ๋กํผํฐ, ์๋ธ์คํฌ๋ฆฝํธ ๋ชจ๋ ๊ฐ๋ฅ๋ค๋ฅธ ์ ์ธ ์์ overrideํค์๋ ๋ถ์ฌ .. 2024. 3. 22. ์ด์ 1 2 3 4 5 ยทยทยท 42 ๋ค์ ๋ฐ์ํ