SWIFT 31

Swift - function

Function Function์€ ์–ด๋–ค ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ฝ”๋“œ ๋ธ”๋Ÿญ์ด๋‹ค. ์ด๋Š” ์•ž์„œ ์ •๋ฆฌํ•œ Method์™€ ์˜๋ฏธ๊ฐ€ ๊ฑฐ์˜ ๊ฐ™๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋Œ€์‹ ์— Method ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ์–ด๋–ค object ์•ˆ์— ์†ํ•ด์„œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋ฐ˜๋ฉด์— Function์€ ๋…๋ฆฝ์ ์œผ๋กœ๋„ ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. Method → object.methodName( ) Function → functionName( ) func printTotalPriceWithDefaultValue(_ price: Int, _ count: Int) { โˆ™โˆ™โˆ™ } printTotalPriceWithDefaultValue(1500, 5) ์œ„์™€ ๊ฐ™์ด (_)๋ฅผ ์•ž์— ์‚ฌ์šฉํ•˜๋ฉด, External parameter name ์—†์ด input va..

Swift - switch(์Šค์œ„์น˜)

Switch switch ๊ตฌ๋ฌธ์˜ ๋™์ž‘ ๋ฐฉ์‹์€ ํ™•์ธํ•˜๋Š” ๋ณ€์ˆ˜๋ฅผ switch๋ฌธ์˜ ์˜†์— ๋‘๊ณ , ๋ธ”๋ก ์•ˆ์—์„œ ์—ฌ๋Ÿฌ ๊ฐ€๋Šฅํ•œ ์ผ€์ด์Šค๋“ค์„ ์ฒดํฌํ•˜๊ณ , ํ•ด๋‹น ์ผ€์ด์Šค์— ๋ถ€ํ•ฉํ•˜๋ฉด ์ฝ”๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋„๋ก ๋งŒ๋“  ๊ฒƒ์ด๋‹ค. ์œ„์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋งŒ๋“  ์ฝ”๋“œ๋ฅผ ํ•œ ๋ฒˆ ์‚ดํŽด๋ณด์ž. switch ~ case ์—์„œ num = 10์— ํ•ด๋‹นํ•˜๋Š” ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. switch๋ฌธ์—์„œ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋“ค์–ด์˜ค๋Š” ๋ณ€์ˆ˜์— ๋Œ€ํ•ด์„œ ์ƒ๊ฐํ•ด ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์ผ€์ด์Šค์— ๋Œ€ํ•ด์„œ ๋‹ค๋ค„์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์ผ€์ด์Šค๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์€ ๊ฒฝ์šฐ์—๋Š” ์œ„์™€ ๊ฐ™์ด default ์ผ€์ด์Šค๋ฅผ ์ด์šฉํ•ด์„œ ๋‚˜๋จธ์ง€ ์ผ€์ด์Šค์— ๋Œ€ํ•ด์„œ ์ˆ˜ํ–‰ํ•ด์ฃผ๋Š” ์ฝ”๋“œ๋ฅผ ๋‚จ๊ฒจ์ฃผ๋ฉด ๋œ๋‹ค. "dog"์— ํ•ด๋‹นํ•˜๋Š” ์ผ€์ด์Šค๊ฐ€ ์ถœ๋ ฅ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ, pet = "bird" ์ด๋ผ๊ณ  ํ–ˆ๋‹ค๋ฉด, ----> ๋ชจ๋ฅด๋Š” ๋™๋ฌผ์ž…๋‹ˆ..

Swift - Flow Control

Flow Control ์ƒํ™ฉ์— ๋”ฐ๋ผ์„œ ์ฝ”๋“œ๋ฅผ ๊ฑด๋„ˆ๋›ฐ๊ฑฐ๋‚˜, ์–ด๋–ค ์ž‘์—…์„ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋Œ๋ฆฌ๋Š”๊ฑฐ๋‚˜, ํŠน์ • ์กฐ๊ฑด์—๋งŒ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒƒ๋“ค์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ๋ฐ˜๋ณต๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ์ด๋‹ค. - 1 ์ฝ”๋“œ์— ๋Œ€ํ•œ ์„ค๋ช…์€ ์˜†์— ์ฃผ์„ ํ™•์ธ! - 2 ์œ„์— ์žˆ๋Š” ๋‘ ๊ฐ€์ง€ ์ฝ”๋“œ์˜ ๊ฒฐ๊ณผ๋Š” ๊ฐ™๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด, ์ฐจ์ด์ ์€ ๋ฌด์—‡์ผ๊นŒ?๐Ÿง ์ด ๋‘˜์˜ ์ฐจ์ด์ ์€ ์กฐ๊ฑด๋ฌธ์˜ ๊ฒฝ๊ณ„์„  ์ƒ์—์„œ ์ฐจ์ด๊ฐ€ ๋‚œ๋‹ค. ๊ฐ๊ฐ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ i = 10 ์œผ๋กœ ๋ณ€๊ฒฝํ•ด์„œ ์‹คํ–‰ํ•ด๋ณด๋ฉด, ์œ„์™€ ๊ฐ™์ด while๊ตฌ๋ฌธ์€ ์•ˆ์— ์žˆ๋Š” ๊ตฌ๋ฌธ์ด ์ถœ๋ ฅ๋˜์ง€ ์•Š์•˜๋‹ค. ๋ฐ˜๋ฉด์—, repeat while๊ตฌ๋ฌธ์˜ ๊ฒฝ์šฐ์—๋Š” ์•ˆ์— ์žˆ๋Š” ๊ตฌ๋ฌธ์ด ์šฐ์„  ํ•œ ๋ฒˆ ์ถœ๋ ฅ์ด ๋˜๊ณ , ์ดํ›„ ์ถœ๋ ฅ๋˜์ง€ ์•Š์•˜๋‹ค. ์ฆ‰, while์€ ๋จผ์ € ์กฐ๊ฑด์„ ๊ฒ€์‚ฌํ•œ ํ›„์— ์ฝ”๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. → ( ์กฐ๊ฑด > ์ฝ”๋“œ์ˆ˜ํ–‰ > ..

Swift - Scope(์Šค์ฝฅ)

Scope(์Šค์ฝฅ) Scope์€ ์ฝ”๋“œ์˜ ๋ฒ”์œ„๋ฅผ ๋งํ•œ๋‹ค. ์ฝ”๋“œ๋Š” ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜ ์ ์šฉ๋˜๋Š” ๋ฒ”์œ„๊ฐ€ ์กด์žฌํ•œ๋‹ค. Scope(์Šค์ฝฅ)์€ Global Scope๊ณผ Local Scope ๋‘ ๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜๋œ๋‹ค. ๋ถ„๋ฅ˜ ๊ธฐ์ค€์€ ๋ฐ”๋กœ ์ค‘๊ด„ํ˜ธ({ })์ด๋‹ค. { } ๊ฐ€์žฅ ๋ฐ–์€ Global Scope, { } ์•ˆ์€ Local Scope์ด๋‹ค. ์•„๋ž˜ ์˜ˆ์‹œ๋กœ Global Scope๊ณผ Local Scope์„ ๊ตฌ๋ถ„ํ•ด ๋ณด์ž. ๊ธ€๋กœ๋ฒŒ ์Šค์ฝฅ(Global Scope)์— ์„ ์–ธ๋œ ์ƒ์ˆ˜๋Š” fubao์™€ ruiHuiBao์ด๋‹ค. ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ํ‘œ์‹œํ•ด ๋†“์€ ๋ถ€๋ถ„์ด ๋ฐ”๋กœ ๋กœ์ปฌ ์Šค์ฝฅ(Local Scope)์ด๋‹ค. ์œ„ ์˜ˆ์‹œ์™€ ๊ฐ™์ด ๋กœ์ปฌ ์Šค์ฝฅ ์•ˆ์— ํ•˜์œ„ ์Šค์ฝ”ํ”„๋กœ ๋กœ์ปฌ ์Šค์ฝฅ์ด ๋˜ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๐Ÿ’ก์ฃผ์˜!๐Ÿ’ก ๊ฐ™์€ ์Šค์ฝฅ์—์„œ๋Š” ๊ฐ™์€ ์ƒ์ˆ˜๋ฅผ ๋˜ ์„ ์–ธํ•  ์ˆ˜ ์—†๋‹ค. ๋‹ค๋ฅธ ์Šค์ฝฅ์—์„œ๋Š” ๊ฐ™์€ ์ด..

Swift - boolean(๋ถˆ๋ฆฐ)

Boolean Swift๋Š” ์ฐธ, ๊ฑฐ์ง“์„ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์–ด๋–ค ๋ฐ์ดํ„ฐ ํ˜•์„ ์‚ฌ์šฉํ• ๊นŒ? ๋ฐ”๋กœ Boolean ํƒ€์ž…, Bool์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ฐธ์€ true, ๊ฑฐ์ง“์€ false๋กœ ๊ฐ’์„ ํ‘œํ˜„ํ•œ๋‹ค. optionํ‚ค๋ฅผ ๋ˆ„๋ฅด๊ณ , ํด๋ฆญํ•ด๋ณด๋ฉด ์œ„์™€ ๊ฐ™์ด Bool ํƒ€์ž…์ด๋ผ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด์ œ ๋ช‡ ๊ฐ€์ง€ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ด…์‹œ๋‹ค! :-) 4 > 5 ๋Š” ๊ฑฐ์ง“์ด๋‹ค. ์˜ค๋ฅธ์ชฝ์— ๋ณด๋ฉด, ์—ญ์‹œ 'false'๋ผ๊ณ  ๋‚˜์™€์žˆ๋‹ค. ๋งŒ์•ฝ(if) isFourGreaterThanFive๊ฐ€ ์ฐธ์ด๋ผ๋ฉด { "์ฐธ์ด๋‹ค"๋ฅผ ์ถœ๋ ฅํ•˜๊ณ , } ๊ทธ๊ฒƒ์ด ์•„๋‹ˆ๋ผ๋ฉด(else) { "๊ฑฐ์ง“์ด๋‹ค"๋ฅผ ์ถœ๋ ฅํ•ด๋ผ. } ๋ผ๊ณ  ํ•ด๋ณด๋‹ˆ, ๋ฐ‘์— '๊ฑฐ์ง“์ด๋‹ค'๊ฐ€ ์ถœ๋ ฅ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. a๋Š” 5 b๋Š” 10 ๋งŒ์•ฝ(if) a๊ฐ€ b๋ณด๋‹ค ํฌ๋‹ค๋ฉด { "a win"์„ ์ถœ๋ ฅ ๊ทธ๊ฒƒ์ด ์•„๋‹ˆ๋ผ๋ฉด(..

Swift - Tuple(ํŠœํ”Œ)

Tuple?? Swift์—์„œ Tuple์€ ๋‹ค์–‘ํ•œ ๊ฐ’(๋ฐ์ดํ„ฐ)์˜ ๋ฌถ์Œ์„ ๋งํ•œ๋‹ค. ํŠœํ”Œ(Tuple)์˜ ๋ช‡ ๊ฐ€์ง€ ํŠน์ง•์ด ์žˆ๋‹ค. ๊ทธ ์ค‘ ํ•˜๋‚˜๋Š” Tuple์€ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋‹ด๋Š” ๋ฐฐ์—ด์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด๋‹ค. ์ฆ‰, ๊ตฌ์„ฑ ์š”์†Œ๋“ค์ด ์„œ๋กœ ๊ฐ™์€ ํƒ€์ž…(์ž๋ฃŒํ˜•)์ผ ํ•„์š”๊ฐ€ ์—†๋‹ค. ๋˜ํ•œ ํŠœํ”Œ ์•ˆ์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ’๋“ค์˜ ๊ฐœ์ˆ˜๋„ ์ œํ•œ์ด ์—†๋‹ค. ์œ„์™€ ๊ฐ™์ด ์—ฌ๋Ÿฌ ์ž๋ฃŒํ˜•์„ ๊ด„ํ˜ธ๋กœ ๋ฌถ์„ ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ, ํƒ€์ž…์ถ”๋ก ์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์œ„์™€ ๊ฐ™์ด ์ž๋ฃŒํ˜•์„ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค. ์œ„์™€ ๊ฐ™์ด Array์™€ ๋™์ผํ•˜๊ฒŒ Index๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. Index๋ฅผ ํ™œ์šฉํ•ด์„œ ๊ฐ’์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. (↓์•„๋ž˜ ์˜ˆ์‹œ↓) panda.0 = "์•„์ด๋ฐ”์˜ค" → panda = ("์•„์ด๋ฐ”์˜ค, 3, true) ๊ทธ๋ฆฌ๊ณ  ํŠœํ”Œ(Tuple)์— ์ด๋ฆ„์„ ๋ถ™์ผ ์ˆ˜ ์žˆ๋‹ค. 'Name..

Swift ์–ธ์–ด๋ž€?

Swift์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž! Swift ์–ธ์–ด๋Š” ์• ํ”Œ์ด ๊ฐœ๋ฐœํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค. iOS, macOS, watchOS, TV OS ๋“ฑ ์• ํ”Œ ์ƒํƒœ๊ณ„์—์„œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์— ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค. iOS ์•ฑ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด์„œ ๋ฐ˜๋“œ์‹œ ์•Œ์•„์•ผ ํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ '์Šค์œ„ํ”„ํŠธ(Swift)' ์–ธ์–ด์ด๋‹ค. Objective-C๋ณด๋‹ค ๊ฐ„๊ฒฐํ•˜๊ณ , ํšจ์œจ์ ์ธ ์ฝ”๋“œ ์ž‘์„ฑ์ด ๊ฐ€๋Šฅํ•˜๊ณ , ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ„์†Œํ™”ํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋” ์‰ฝ๊ฒŒ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์›€์„ ์ฃผ๊ณ  ์žˆ๋‹ค. Swift ์–ธ์–ด ํŠน์ง• Swift๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. Objective-C๋ณด๋‹ค ์‰ฝ๊ฒŒ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋น ๋ฅธ ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ฌด์—‡๋ณด๋‹ค ์• ํ”Œ์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค๊ณผ์˜ ์—ฐ๋™์„ฑ์ด ๋›ฐ์–ด๋‚˜์„œ ๋”์šฑ ์•ˆ์ •์ ์ธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค. Swift ์–ธ์–ด์˜ ์žฅ์ ..

Swift 2024.02.19