[ Swift ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ] ์˜ต์…”๋„ ํƒ€์ž…(Optional Types) / Unwrapping / ์˜ต์…”๋„ ๋ฐ”์ธ๋”ฉ(Optional Binding)

๐Ÿ’ฌ  Introduction๐Ÿ’ฌ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ๋Š” ์—†๋Š” ์ƒˆ๋กœ์šด ํƒ€์ž…์œผ๋กœ ํƒ€์ž… ๋’ค์— ๋ฌผ์Œํ‘œ(?)๋งŒ ๋ถ™์—ฌ ์ฃผ๋ฉด ๋œ๋‹ค. ์•ฑ ์ž‘๋™ ์‹œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๊ฐ’์ด ์—†์œผ๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.์ด๋Š” ์•ฑ์ด ๊บผ์ง€๊ฒŒ ๋˜๋ฏ€๋กœ ๋งค์šฐ ์œ„ํ—˜ํ•œ ์—๋Ÿฌ์ด๋‹ค.  ex)๋„คํŠธ์›Œํฌ์—์„œ ๊ฐ€์ ธ ์˜จ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™” ํ•œ๋‹ค๊ณ  ํ•˜๋ฉด ์ ‘์†์ด ๋˜์–ด ์žˆ์ง€ ์•Š๊ฑฐ๋‚˜์ค‘๊ฐ„์— ์—ฐ๊ฒฐ์ด ๋Š๊ฒจ ๋ฒ„๋ฆฌ๋ฉด ๊ฐ’์„ ์ €์žฅํ•  ์ˆ˜ ์—†๊ฒŒ ๋œ๋‹ค.์ด๋Ÿฐ ๊ฒฝ์šฐ ๊ฐ’์ด ์ €์žฅ๋˜์–ด ์žˆ์ง€ ์•Š๋Š”๋ฐ ๋„Œ์˜ต์…”๋„ ํƒ€์ž…์€ ๊ฐ’์„ ๋ฐ˜๋“œ์‹œ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•˜๋Š”๋ฐ์—†๊ธฐ ๋•Œ๋ฌธ์— ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค.  ๋”ฐ๋ผ์„œ ๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜๋Š” ๊ฐ’์„ ์ฝ๊ธฐ ์ „์— ๋ฐ˜๋“œ์‹œ ์ดˆ๊ธฐํ™” ํ•ด์•ผ ํ•œ๋‹ค.์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ์ž„์‹œ์ ์ธ ํƒ€์ž…์„๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๋‹ด์•„๋‘๋Š” ๊ฐœ๋…์ด ์˜ต์…”๋„ ํƒ€์ž…์ด๋‹ค.   ํ•ญ์ƒ ํƒ€์ž…์— ๋งž๋Š” ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค. -> ๋„Œ์˜ต์…”๋„ ํƒ€์ž… (N..

๐ŸŽ iOS/Swift 2024. 5. 2. 21:24

[ Swift ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ] ์ œ์–ด ์ „๋‹ฌ๋ฌธ - break, continue, return, fallthrough / throw

๐Ÿ’ฌ  Introduction์ œ์–ด ์ „๋‹ฌ๋ฌธ์€ ๋ฐ˜๋ณต๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ์—์„œ ์‚ฌ์šฉ๋˜๊ณ  ์ฝ”๋“œ์˜ ์‹คํ–‰ ํ๋ฆ„์„ ๋ฐ”๊พธ๋Š”๋ฐ ์‚ฌ์šฉํ•œ๋‹ค. ์–ด๋–ค ์กฐ๊ฑด์ด ๋˜๋ฉด ๋ฐ˜๋ณต๋ฌธ์„ ๋๋‚ด๊ฑฐ๋‚˜ ํ˜„์žฌ ํšŒ์ฐจ๋ฅผ ๋๋‚ด๊ณ  ๋ฐ”๋กœ ๋‹ค์Œ ํšŒ์ฐจ๋กœ ๋„˜์–ด ๊ฐ€๋Š” ๊ฒƒ ๋“ฑ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.  ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ์Šค์ฝ”ํ”„๋ฅผ ๋๋‚ด๊ณ  ๋‹ค์Œ์— ์‹คํ–‰ํ•  ์ฝ”๋“œ๋ฅผ ๋ฐ”๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ. Swift์—๋Š” 5๊ฐ€์ง€ ์ œ์–ด ์ „๋‹ฌ๋ฌธ์ด ์žˆ๋‹ค.break, continue, fallthrough, throw, return,    continue๋Š” ์ œ์–ด๋ฅผ ๋‹ค์Œ ํšŒ์ฐจ๋กœ ์ „๋‹ฌindex๊ฐ€ 5 ... 10๊นŒ์ง€๋Š” "end"๊ฐ€ ์ถœ๋ ฅ์ด ๋˜๊ณ  ๋‹ค์Œ ํšŒ์ฐจ ๋ฐ˜๋ณตindex๊ฐ€ 11์ด ๋˜๋ฉด ๋ฐ”๋กœ break๊ฐ€ ์‹คํ–‰ ๋˜๊ณ  ์‹คํ–‰ ์ค‘์ธ ๋ฌธ์žฅ์„ ๋๋‚ธ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” for๋ฌธ์ด ๋๋‚˜๊ณ  for๋ฌธ ๋‹ค์Œ ๋ฌธ์žฅ์œผ๋กœ ์ „๋‹ฌ์ด ๋œ๋‹ค.     ๐Ÿ”Ž  1 . break..

๐ŸŽ iOS/Swift 2024. 5. 2. 09:31

[ Swift ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ] ์กฐ๊ฑด๋ฌธ - if ๊ตฌ๋ฌธ / guard ๊ตฌ๋ฌธ / switch ๊ตฌ๋ฌธ

๐Ÿ”Ž  1 . if ๊ตฌ๋ฌธ condition == ์กฐ๊ฑด == boolean์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ๊ฐ€ true์ผ ๋•Œ๋งŒ ์ฝ”๋“œ ๋ธ”๋ก ๋‚ด๋ถ€์˜ ๊ตฌ๋ฌธ ์‹คํ–‰false์ด๋ฉด ์ฝ”๋“œ๋ธ”๋ก์„ ๋น ์ ธ๋‚˜๊ฐ€ if๋ธ”๋ก ๋‹ค์Œ์— ์œ„์น˜ํ•œ ์ฝ”๋“œ ์ˆ˜ํ–‰ โœ… if ~ elseif ์กฐ๊ฑด์‹  { ์กฐ๊ฑด์ด true ์ผ ๋•Œ ์‹คํ–‰ํ•  ๊ตฌ๋ฌธ }else { ์กฐ๊ฑด์ด false ์ผ ๋•Œ ์‹คํ–‰ํ•  ๊ตฌ๋ฌธ } โœ… if ~ else if๋น„๊ตํ•  ์กฐ๊ฑด์ด ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ์„ ๊ฒฝ์šฐ  if๋ฌธ์€ ์œ„์—์„œ ์•„๋ž˜๋กœ ์กฐ๊ฑด์„ ํ‰๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค. ๊ทธ๋ž˜์„œ ํ•ญ์ƒ ๊นŒ๋‹ค๋กœ์šด ์กฐ๊ฑด๋ฌธ์ด ๋จผ์ € ์˜ค๊ณ  ๋Š์ˆœํ•œ ์กฐ๊ฑด๋ฌธ์ด ๋‚˜์ค‘์— ์™€์•ผ ํ•œ๋‹ค.   โœ… #available ๊ตฌ๋ฌธOS ๋ฒ„์ „์— ๋”ฐ๋ผ ๊ธฐ๋Šฅ์ด ๋‹ค๋ฅด๊ฒŒ ์ œ๊ณต ๋˜์–ด OS ๋ฒ„์ „์— ๋”ฐ๋ผ ๊ตฌ๋ฌธ์„ ๋‚˜๋ˆ  ์ž‘์„ฑํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.ํŠน์ • API๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ iOS ๋ฒ„์ „๊ณผ ๊ธฐ๊ธฐ..

๐ŸŽ iOS/Swift 2024. 5. 2. 03:04

์ž๋ฃŒ๊ตฌ์กฐ(Data Structure)์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Algorithm)

๐Ÿ’ฌ ์™œ ์•Œ์•„์•ผํ•˜๋Š”๊ฐ€?๋งŒ๋“ค๊ณ ์ž ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค์„ ๋ณด๋‹ค ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ค€๋‹ค. ํšจ์œจ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์žฅ ์ ํ•ฉํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์„ ํƒํ•˜์—ฌ ์ปดํ“จํ„ฐ๊ฐ€ ๋ณต์žกํ•œ ์ž๋ฃŒ๋“ค์„ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.  ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ์š”๋ฆฌ ์žฌ๋ฃŒ๋กœ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์š”๋ฆฌ ๋ ˆ์‹œํ”ผ์˜ ๋Š๋‚Œ์œผ๋กœ ์ดํ•ดํ•˜๋ฉด ์ข‹๋‹ค.   ๐Ÿ”Ž  ์ž๋ฃŒ๊ตฌ์กฐ(Data Structure): ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๋‹ค์–‘ํ•œ ์ž๋ฃŒ๋ฅผ ํšจ์œจ์ ์ธ ๊ทœ์น™์— ๋”ฐ๋ผ ์ •๋ฆฌํ•œ ๊ตฌ์กฐ์ด๋‹ค.์ ์€ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•. ์–ด๋–ค ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ๋‹ฌ๋ผ์ง„๋‹ค. ๊ฐ๊ฐ์˜ ์ž๋ฃŒ๊ตฌ์กฐ ๋ณ„ ์žฅ๋‹จ์ ์„ ํŒŒ์•…ํ•˜๊ณ  ์‹คํ–‰์‹œ๊ฐ„๊ณผ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ๋“ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ์— ๋น ๋ฅด๊ฒŒ ์ ‘๊ทผํ•˜๊ณ  ์ˆ˜์ •, ์‚ฝ์ž…, ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋Š” ์ ํ•ฉํ•œ ์ž๋ฃŒ..

โŒจ๏ธ Cording Test/Data Structure 2024. 5. 2. 01:15