๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ381

[Swift] ๋ฉ”์„œ๋“œ ๋ฉ”์„œ๋“œ(Methods)ํŠน์ • ํƒ€์ž…์˜ ํด๋ž˜์Šค, ๊ตฌ์กฐ์ฒด, ์—ด๊ฑฐํ˜•๊ณผ ๊ด€๋ จ๋œ ํ•จ์ˆ˜ ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ (Instance Methods)ํŠน์ • ํด๋ž˜์Šค, ๊ตฌ์กฐ์ฒด, ์—ด๊ฑฐํ˜•์˜ ์ธ์Šคํ„ด์Šค์— ์†ํ•œ ๋ฉ”์„œ๋“œ์ธ์Šคํ„ด์Šค ๋‚ด์˜ ๊ฐ’์„ ์ œ์–ดํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ์ธ์Šคํ„ด์Šค๊ฐ€ ์†ํ•œ ํŠน์ • ํƒ€์ž…์˜ ์ธ์Šคํ„ด์Šค์—์„œ๋งŒ ์‹คํ–‰ ๊ฐ€๋Šฅclass Counter { var count = 0 func increment() { count += 1 } func increment(by amount: Int) { count += amount } func reset() { count = 0 }}let counter = Counter()// ์ดˆ๊ธฐ count ๊ฐ’์€ 0์ž…๋‹ˆ๋‹ค.counter.increment()// co.. 2024. 3. 21.
[Swift] ํ”„๋กœํผํ‹ฐ ์ €์žฅ ํ”„๋กœํผํ‹ฐ๊ณ„์‚ฐ ํ”„๋กœํผํ‹ฐ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœํผํ‹ฐ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ์žˆ์ง€ ์•Š๊ณ  ํŠน์ •ํ•˜๊ฒŒ ๊ณ„์‚ฐํ•œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ด ์ฃผ๋Š” ํ”„๋กœํผํ‹ฐํด๋ž˜์Šค์™€ ๊ตฌ์กฐ์ฒด์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํด๋ž˜์Šค, ๊ตฌ์กฐ์ฒด, ์—ด๊ฑฐํ˜• ๋ชจ๋‘์—์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅ์ €์žฅ ํ”„๋กœํผํ‹ฐletํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ์ƒ์ˆ˜ ํ˜น์€ varํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ๋ณ€์ˆ˜๋กœ ์„ ์–ธํ•ด ์‚ฌ์šฉstruct FixedLengthRange { var firstValue: Int let length: Int}var rangeOfThreeItems = FixedLengthRange(firstValue: 0, length: 3)// ๋ฒ”์œ„ ๊ฐ’์€ 0, 1, 2 ์ž…๋‹ˆ๋‹ค.rangeOfThreeItems.firstValue = 6// ๋ฒ”์œ„ ๊ฐ’์€ 6, 7, 8 ์ž…๋‹ˆ๋‹ค. ์ƒ์ˆ˜ ๊ตฌ์กฐ์ฒด ์ธ์Šคํ„ด์Šค์˜ ์ €์žฅ ํ”„๋กœํผํ‹ฐ๊ตฌ์กฐ์ฒด๋ฅผ ์ƒ์ˆ˜(let)๋กœ .. 2024. 3. 20.
[Swift] ํด๋ž˜์Šค์™€ ๊ตฌ์กฐ์ฒด ํด๋ž˜์Šค VS ๊ตฌ์กฐ์ฒด๊ณตํ†ต์ ๊ฐ’์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœํผํ‹ฐ ์ •์˜๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”์†Œ๋“œ ์ •์˜ subscript ๋ฌธ๋ฒ•์„ ์ด์šฉํ•ด ํŠน์ • ๊ฐ’์„ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” subscript ์ •์˜์ดˆ๊ธฐ ์ƒํƒœ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” initializer ์ •์˜๊ธฐ๋ณธ ๊ตฌํ˜„์—์„œ ๊ธฐ๋Šฅ ํ™•์žฅํŠน์ •ํ•œ ์ข…๋ฅ˜์˜ ํ‘œ์ค€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ ์ˆœ์‘(conform)์ฐจ์ด์ (ํด๋ž˜์Šค๋งŒ ๊ฐ€๋Šฅ)์ƒ์† (Inheritance): ํด๋ž˜์Šค์˜ ์—ฌ๋Ÿฌ ์†์„ฑ์„ ๋‹ค๋ฅธ ํด๋ž˜์Šค์— ๋ฌผ๋ ค ์คŒํƒ€์ž… ์บ์ŠคํŒ… (Type casting): ๋Ÿฐํƒ€์ž„์— ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค์˜ ํƒ€์ž…์„ ํ™•์ธ์†Œ๋ฉธ์ž (Deinitializers): ํ• ๋‹น๋œ ์ž์›์„ ํ•ด์ œ(free up) ์‹œํ‚ด์ฐธ์กฐ ์นด์šดํŠธ (Reference counting): ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค์— ํ•˜๋‚˜ ์ด์ƒ์˜ ์ฐธ์กฐ๊ฐ€ ๊ฐ€๋Šฅ๊ตฌ์กฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์ฃผ ๋ชฉ์ ์ด ๊ด€๊ณ„๋œ ๊ฐ„๋‹จํ•œ ๊ฐ’.. 2024. 3. 19.
[Swift] ํด๋กœ์ € ํด๋กœ์ €(Closures)์–ด๋–ค ์ƒ์ˆ˜๋‚˜ ๋ณ€์ˆ˜์˜ ์ฐธ์กฐ๋ฅผ ์บก์ฒ˜(๊ฐ’์˜ ์ฐธ์กฐ๋ฅผ ๊ฐ–๋Š”๋‹ค.)ํ•ด ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ ๋ธ”๋ŸญSwift๋Š” ๊ด€๋ จ๋œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์•Œ์•„์„œ ์ฒ˜๋ฆฌ ํด๋กœ์ €์˜ ํ˜•ํƒœ์ „์—ญ ํ•จ์ˆ˜ : ์ด๋ฆ„์ด ์žˆ๊ณ  ์–ด๋–ค ๊ฐ’๋„ ์บก์ฒ˜ํ•˜์ง€ ์•Š๋Š” ํด๋กœ์ €์ค‘์ฒฉ ํ•จ์ˆ˜ : ์ด๋ฆ„์ด ์žˆ๊ณ  ๊ด€๋ จํ•œ ํ•จ์ˆ˜(ํ•˜์œ„→์ƒ์œ„)๋กœ ๋ถ€ํ„ฐ ๊ฐ’์„ ์บก์ฒ˜ ํ•  ์ˆ˜ ์žˆ๋Š” ํด๋กœ์ €ํด๋กœ์ € ํ‘œํ˜„ : ๊ฒฝ๋Ÿ‰ํ™” ๋œ ๋ฌธ๋ฒ•์œผ๋กœ ์“ฐ์—ฌ์ง€๊ณ  ๊ด€๋ จ๋œ ๋ฌธ๋งฅ(context)์œผ๋กœ๋ถ€ํ„ฐ ๊ฐ’์„ ์บก์ณํ•  ์ˆ˜ ์žˆ๋Š” ์ด๋ฆ„์ด ์—†๋Š” ํด๋กœ์ € ํด๋กœ์ € ํ‘œํ˜„ (Closure Expressions)์ธ๋ผ์ธ ํด๋กœ์ €๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฌธ๋ฒ•์— ์ดˆ์ ์ด ๋งž์ถฐ์ ธ์žˆ์Œ์ฝ”๋“œ์˜ ๋ช…ํ™•์„ฑ๊ณผ ์˜๋„๋ฅผ ์žƒ์ง€ ์•Š์œผ๋ฉด์„œ๋„ ๋ฌธ๋ฒ•์„ ์ถ•์•ฝํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๋ฌธ๋ฒ•์˜ ์ตœ์ ํ™” ๋ฐฉ๋ฒ•์„ ์ œ๊ณต ์ •๋ ฌ ๋ฉ”์†Œ๋“œ(The Sorted Method)Swift ํ‘œ์ค€ ๋ผ์ด๋ธŒ.. 2024. 3. 18.
[Swift] ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์™€ ํ•จ์ˆ˜ 1. ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ์˜ ๊ฐœ๋…ํ”„๋กœ๊ทธ๋žจ์— ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ, ์ด๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ๋ณต๊ตฌํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์ด ํ•ญ์ƒ ์›ํ•˜๋Š”๋Œ€๋กœ ์ •ํ™•ํžˆ ๋™์ž‘ํ•œ๋‹ค๋Š” ๋ณด์žฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ์„ ํ•ญ์ƒ ๊ณ ๋ คํ•ด์•ผ ํ•จguardguard ์กฐ๊ฑด else {์กฐ๊ฑด์ด ๊ฑฐ์ง“์ผ ๋•Œ ์‹คํ–‰๋  ๊ตฌ๋ฌธ}// someValue ๊ฐ€ 0์ด ์•„๋‹ ๊ฒฝ์šฐ์—๋งŒ ์ถœ๋ ฅguard someValue != 0 else { return }print(someValue)์กฐ๊ฑด๋“ค์„ ๊ฑธ๋Ÿฌ๋‚ผ ๋•Œ ์‚ฌ์šฉ๊ฐ€๋…์„ฑ์„ ์œ„ํ•ด ์‚ฌ์šฉ์กฐ๊ฑด์‹์— ์ด ํ•จ์ˆ˜๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์กฐ๊ฑด์„ ๊ทธ๋Œ€๋กœ ์ ๋Š”๋‹ค๋Š” ์ ์—์„œ guard ๊ตฌ๋ฌธ์ด ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•  ๋•Œ ๊ฐ€๋…์„ฑ์ด ์ข‹์•„์งfunc printMessage(_ message: String?) { if message == nil { return } print(.. 2024. 3. 17.
[Swift] ์กฐ๊ฑด/๋ฐ˜๋ณต๋ฌธ 1. ์กฐ๊ฑด๋ฌธ์กฐ๊ฑด๋ฌธ์˜ ๊ฐœ๋…์–ด๋– ํ•œ ๊ฐ’์ด ํŠน์ • ์กฐ๊ฑด์— ํ•ด๋‹นํ•  ๋•Œ๋งŒ ์„ ํƒ์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰if-elseif ์กฐ๊ฑด { //์กฐ๊ฑด์ด ๋งŒ์กฑ๋˜๋ฉด ์‹คํ–‰} else { //์กฐ๊ฑด์ด ๋งŒ์กฑ๋˜์ง€ ์•Š์œผ๋ฉด ์‹คํ–‰}var a : String = "์ฒ ์ˆ˜"var b : String = "์งฑ๊ตฌ"var c : String = "๋งน๊ตฌ"if a == "์ฒ ์ˆ˜" { print("์ •๋‹ต!")}else { print("a๋Š” \\(a)์ž…๋‹ˆ๋‹ค.")}if b == "์œ ๋ฆฌ" { print("์ •๋‹ต!")}else { print("b๋Š” \\(b)์ž…๋‹ˆ๋‹ค.")}// ์ •๋‹ต!// b๋Š” ์งฑ๊ตฌ์ž…๋‹ˆ๋‹ค.var age : Int = 19var student : String = ""if age >= 8 && age else if ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์ค‘ ์ œ์–ด ๊ฐ€.. 2024. 3. 17.
๋ฐ˜์‘ํ˜•