Swift5.0 SE-0225 ๋ฐฐ์ˆ˜ ๊ตฌํ•˜๊ธฐ isMultiple(of:)

Swift5.0 SE-0225 ๋ฐฐ์ˆ˜ ๊ตฌํ•˜๊ธฐ isMultiple(of:)

์•ˆ๋…•ํ•˜์„ธ์š”~! ์˜ค๋Š˜์€ isMultiple(of:)์— ๋Œ€ํ•ด์„œ ์†Œ๊ฐœํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. isMultiple(of:)๋Š” ๋ฐฐ์ˆ˜์ธ์ง€ ํŒ๋‹จํ•˜๋Š” ๋ฉ”์„œ๋“œ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋ฐฐ์ˆ˜๋Š” ์–ด๋–ค ์ •์ˆ˜์™€ ๋‹ค๋ฅธ ์ •์ˆ˜๋ฅผ ๊ณฑํ–ˆ์„ ๋•Œ ๋‚˜์˜ค๋Š” ์ˆ˜์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 6 = 2 * 3์ด๋ฏ€๋กœ 6์€ 3์˜ ๋ฐฐ์ˆ˜์ž…๋‹ˆ๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ ์ฒ˜๋Ÿผ ์ด์ „์—๋Š” % ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐฐ์ˆ˜๋ฅผ ํŒ๋‹จํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์—ˆ์ฃ  ๊ทธ๋ ‡๋‹ค๋ฉด isMultiple(of:)์™€ ์–ด๋–ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ๊ธธ๋ž˜ ์• ํ”Œ์—์„œ ๊ณต์‹์ ์œผ๋กœ ์ œ๊ณตํ•˜๊ณ  ์žˆ์„๊นŒ์š”? let number = 6 if number % 3 == 0 { print("6์€ 3์˜๋ฐฐ์ˆ˜") } ์ฒซ ๋ฒˆ์งธ๋กœ, 0์œผ๋กœ ๋‚˜๋ˆ„๋Š” ์ƒํ™ฉ์„ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ์š”. number % 0 == 0 ์€ ๋ฌด์กฐ๊ฑด ์ฐธ ์ž…๋‹ˆ๋‹ค. number.isMultiple(of: 0)์€ nu..

  • textsms
Swift5.0 ํ–ฅํ›„ ๋ณ€๊ฒฝ ๋  ์ˆ˜ ์žˆ๋Š” Enum(์—ด๊ฑฐํ˜•) switch @unknown ์†์„ฑ ์ฒ˜๋ฆฌ SE-0192

Swift5.0 ํ–ฅํ›„ ๋ณ€๊ฒฝ ๋  ์ˆ˜ ์žˆ๋Š” Enum(์—ด๊ฑฐํ˜•) switch @unknown ์†์„ฑ ์ฒ˜๋ฆฌ SE-0192

์•ˆ๋…•ํ•˜์„ธ์š”~! ์˜ค๋Š˜์€ Enum์— ๋Œ€ํ•ด์„œ ์ด์•ผ๊ธฐ ํ•ด๋ณด๋ ค๊ณ  ํ•˜๋Š”๋ฐ์š”. ์ด๋ฒˆ Swift5.0์—์„œ ์ถ”๊ฐ€๋œ @unknown ์†์„ฑ์— ๋Œ€ํ•ด์„œ ์ด์•ผ๊ธฐ ํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€ ๊ฐ™์ด ๋ณด์‹œ์ฃ ~! ๋ณดํ†ต Enum๊ฐ’ ๋ถ„๊ธฐ์ฒ˜๋ฆฌ์‹œ Switch๋ฌธ์„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š”๋ฐ์š”. enum์— ์žˆ๋Š” ๋ชจ๋“  case๋“ค์„ ๋ฌด์กฐ๊ฑด ์ฒ˜๋ฆฌ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. @unknown ์†์„ฑ์„ ์‚ฌ์šฉํ•ด์„œ ๋ฏธ๋ฌ˜ํ•˜๊ฒŒ ๋‹ค๋ฅธ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ์š” ์•„๋ž˜ ์˜ˆ์‹œ๋ฅผ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํŒจ์Šค์›Œ๋“œ ์ž…๋ ฅ์‹œ ๋ฐœ์ƒ ํ•  ์ˆ˜ ์žˆ๋Š” ์—๋Ÿฌ๋ฅผ ๊ฐ„๋žตํ•˜๊ฒŒ enum์œผ๋กœ ํ‘œํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค enum PasswordError: Error { case short case obvious case simple } ์—๋Ÿฌ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š” ๋ชจ์Šต์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. func showPasswordError(_ error: ..

  • textsms
Swift 5.0 Result Type ์†Œ๊ฐœ (์—๋Ÿฌ ์ฒ˜๋ฆฌ๋ฅผ ์‰ฝ๊ณ  ๊น”๋”ํ•˜๊ฒŒ ๊ฒฐ๊ณผ๋Š” ๋ช…ํ™•ํ•˜๊ฒŒ SE-0235)

Swift 5.0 Result Type ์†Œ๊ฐœ (์—๋Ÿฌ ์ฒ˜๋ฆฌ๋ฅผ ์‰ฝ๊ณ  ๊น”๋”ํ•˜๊ฒŒ ๊ฒฐ๊ณผ๋Š” ๋ช…ํ™•ํ•˜๊ฒŒ SE-0235)

์•ˆ๋…•ํ•˜์„ธ์š”~! ์˜ค๋Š˜์€ ์ƒˆ๋กญ๊ฒŒ ์†Œ๊ฐœ๋œ Result Type์„ ์†Œ๊ฐœํ•ด ๋“œ๋ฆฌ๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. Result Type์€ ์•„๋ž˜ ์ฝ”๋“œ ์ฒ˜๋Ÿผ enum์œผ๋กœ ์„ ์–ธ ๋˜์–ด์žˆ๊ณ  ์„ฑ๊ณต๊ณผ, ์‹คํŒจ๋ฅผ Generic์œผ๋กœ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‹คํŒจ๋Š” ๋ฌด์กฐ๊ฑด ์—๋Ÿฌ ํƒ€์ž…์ด๊ตฌ์š” @frozen enum Result where Failure : Error ๊ธฐ์กด์˜ ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋ฐฉ์‹์„ ๊ฐœ์„ ํ•˜๊ณ  ๊ฒฐ๊ณผ๊ฐ’์„ ๋ช…ํ™•ํžˆ ๋ฐ›๊ธฐ ์œ„ํ•ด Result Type์ด ๋‚˜์™”๋‹ค๊ณ  ๋ณด์—ฌ์ง€๋Š”๋ฐ์š”. ์™œ ๊ทธ๋Ÿฐ์ง€ ์•„๋ž˜ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ํ•จ๊ป˜ ๋ณด์‹œ์ฃ ~! ์•„๋ž˜ ์ฃผ๋ฌธ์„ ๋ฐ›๋Š” ๋ฐ›์•˜์„ ๋•Œ ๋ฐœ์ƒ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ„๋‹จํ•œ ์—๋Ÿฌ๋ฅผ ์ •์˜ ํ–ˆ์Šต๋‹ˆ๋‹ค. enum OrderError: Error { case LackOfMoney } ๋ฉ”๋‰ด๋Š” ํ–„๋ฒ„๊ฑฐ๊ฐ€ ์ข‹์„๊ฑฐ ๊ฐ™์•„์š”. ํ–„๋ฒ„๊ฑฐ ์ข…๋ฅ˜์™€ ์ข…๋ฅ˜์— ๋”ฐ๋ฅธ ๊ฐ€๊ฒฉ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. enum Hamb..

  • textsms
Swift5.0 Character Properties (๋„์–ด์“ฐ๊ธฐ, ๊ณต๋ฐฑ, ์ˆซ์ž, ์†Œ๋ฌธ์ž ๋“ฑ๋“ฑ.. ํ™•์ธ ๊ฐ€๋Šฅํ•ด์š”) SE-0221

Swift5.0 Character Properties (๋„์–ด์“ฐ๊ธฐ, ๊ณต๋ฐฑ, ์ˆซ์ž, ์†Œ๋ฌธ์ž ๋“ฑ๋“ฑ.. ํ™•์ธ ๊ฐ€๋Šฅํ•ด์š”) SE-0221

์•ˆ๋…•ํ•˜์„ธ์š” Swif5.0 Character ํƒ€์ž…์— ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€๋œ Properties์„ ์†Œ๊ฐœํ•ด ๋“œ๋ฆฌ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค~!! ์–ด๋–ค๊ฒƒ๋“ค์ด ์ถ”๊ฐ€ ๋˜์—ˆ๋Š”๋ฐ ํ•จ๊ป˜ ๋ณด์‹œ์ฃ ~! ๊ทธ ์ „์— Character ํƒ€์ž…์ด ๋ฌด์—‡์ธ์ง€ ์งง๊ฒŒ ์†Œ๊ฐœ ํ•ด๋“œ๋ฆฌ๋ ค๊ณ  ํ•˜๋Š”๋ฐ์š”~! ๋ง ๊ทธ๋Œ€๋กœ '๋ฌธ์ž'๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์–ด๋‚˜ ๋ฌธ์žฅ์ฒ˜๋Ÿผ ๋ฌธ์ž์˜ ์ง‘ํ•ฉ(์˜ˆ: dog)์ด ์•„๋‹ˆ๋ผ ๋‹จ ํ•˜๋‚˜์˜ ๋ฌธ์ž(์˜ˆ: d)๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค ์œ ๋‹ˆ์ฝ”๋“œ์—์„œ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ์–ธ์–ด, ํŠน์ˆ˜๋ฌธ์ž ๋“ฑ์„ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€๋œ Properties ์ž…๋‹ˆ๋‹ค. .isASCII ASCII ๋ฌธ์ž๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. let aCharacter = Character("A") let piCharacter = Character("ฯ€") aCharacter.isASCII // true piCharacter...

  • textsms
Raw String(๋ฌธ์ž์—ด)์„ ์‰ฝ๊ฒŒ ํ‘œํ˜„ํ•˜์ž # ... # ("\" ๋ฌธ์ž ์ง€์˜ฅ์—์„œ ๋ฒ—์–ด๋‚˜๊ธฐ) SE-0200

Raw String(๋ฌธ์ž์—ด)์„ ์‰ฝ๊ฒŒ ํ‘œํ˜„ํ•˜์ž # ... # ("\" ๋ฌธ์ž ์ง€์˜ฅ์—์„œ ๋ฒ—์–ด๋‚˜๊ธฐ) SE-0200

Swif 5.7 ๊นŒ์ง€ ์—…๋ฐ์ดํŠธ ๋œ ์ƒํ™ฉ์—์„œ ๋’ค๋Šฆ๊ฒŒ ์ •๋ฆฌํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Swif5.0 ~ 5.7๊นŒ์ง€ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•˜๋Š”๋ฐ์š”. ์ •๋ฆฌ + ํ™œ์šฉ๊นŒ์ง€ ์ „๋‹ฌ๋“œ๋ฆฌ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. (๊ฐœ์ธ์ ์ธ ๊ณต๋ถ€ ๋ฐ ์ •๋ฆฌ) ๊ทธ๋Ÿผ ์‹œ์ž‘ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. #"..."# ๋ฅผ ์ถ”๊ฐ€ํ•œ Raw String ์„ ์ง€์›. ๋ณดํ†ต "๊ณผ ๊ฐ™์€ ํŠน์ˆ˜๋ฌธ์ž๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค๊ณ  ํ•˜๋ฉด \์„ ํ•จ๊ป˜ ๋„ฃ์–ด์„œ ํ‘œํ˜„ํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด์   # ... # ์‚ฌ์ด์— ๋ฌธ์ž๋ฅผ ํ‘œํ˜„ํ•˜๊ฒŒ ๋˜๋ฉด \๋ฅผ ํ•„์ˆ˜์ ์œผ๋กœ ๋„ฃ์„ ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค. let before = "before \"You\"" let after = #"after "You""# ์•„๋ž˜์™€ ๊ฐ™์€ ์ •๊ทœ์‹๋„ ๋งˆ์ฐฌ๊ฐ€์ง€ ์ž…๋‹ˆ๋‹ค. let before = "\\\\[A-Z]+[A-Za-z]+\\.[a-z]+" let after = #"\\[A-Z]+[A-Za-z]..

  • textsms