Swift/๊ธฐ๋ณธ ๋ฌธ๋ฒ• 8

Swift - Array

Array '๋ฌด์–ธ๊ฐ€๋ฅผ ๋‹ด๋Š” ํ†ต'์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. array๋Š” ์ˆœ์„œ์— ๋”ฐ๋ผ์„œ ํ†ต์— ๋‹ด์„ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค. ์ด ํ†ต์— ๋‹ด๋Š” ๋ณ€์ˆ˜๋“ค์€ 'element'๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. array๋Š” ๋‘ ๊ฐ€์ง€ ํŠน์ง•์„ ๊ฐ€์ง„๋‹ค. โ‘  ํ†ต์— ๋‹ด์„ ๋•Œ๋Š” ๊ฐ™์€ ํƒ€์ž…์„ ๋‹ด์•„์•ผ ํ•œ๋‹ค. (ex. Int๋ผ๋ฆฌ, String๋ผ๋ฆฌ ...) โ‘ก ์ˆœ์„œ๊ฐ€ ์กด์žฌํ•œ๋‹ค. array ์† element๋“ค์˜ ์ˆœ๋ฒˆ์ด ์กด์žฌํ•œ๋‹ค. ์ด ์ˆœ๋ฒˆ์„ Index๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. (Index๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค. ๋งˆ์ง€๋ง‰ Index๋Š” (์ „์ฒด ๊ฐฏ์ˆ˜ - 1)๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋จ.) Q. array๋Š” ์–ธ์ œ ์‚ฌ์šฉํ•˜๋ฉด ์œ ์šฉํ• ๊นŒ? ๐Ÿค” โ‘  ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” item โ‘ก item์˜ ์ˆœ์„œ๋ฅผ ์•Œ๋ฉด ์œ ์šฉํ•  ๋•Œ ๊ทธ๋Ÿผ ์ด์ œ๋ถ€ํ„ฐ array๋ฅผ ์–ด๋–ป๊ฒŒ swift๋กœ ๊ตฌํ˜„ํ•˜๊ณ  ์‚ฌ์šฉํ• ์ง€ ์•Œ์•„๋ณด์ž!! :-) < array ๋งŒ๋“ค๊ธฐ, ์š”..

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..