ram2 ๐Ÿš—

[swift] The Basics (๊ณต์‹๋ฌธ์„œ ์ •๋ฆฌ) ๋ณธ๋ฌธ

๐ŸŽ Swift

[swift] The Basics (๊ณต์‹๋ฌธ์„œ ์ •๋ฆฌ)

coram22 2023. 2. 13. 18:48
728x90
๋ฐ˜์‘ํ˜•
728x90

Swift์— ๋Œ€ํ•˜์—ฌ

swift๋Š” ios, macOS, watchOS, tvOS์˜ ์•ฑ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค.

C์™€ Objective-C ๊ฐœ๋ฐœ๊ณผ ๋น„์Šทํ•˜๊ฒŒ ๋Š๋‚„ ์ˆ˜ ์žˆ๋‹ค.

 

swift๋Š” C์™€ ๊ต‰์žฅํžˆ ๋น„์Šทํ•˜๋‹ค. ์™œ๋ƒ! C์˜ ๊ธฐ๋ณธ์ ์ธ type๋“ค์„ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

integers -> int
floating-point -> Double, Float
Boolean -> Bool
textual data -> String
Collection Types -> Array, Set, Dictionary

swift๋Š” C์ฒ˜๋Ÿผ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค. ์—ฌ๊ธฐ์—๋Š” Constants๊ฐ€ ์žˆ๋Š”๋ฐ, swift์—์„œ์˜ constants๋Š” c๋ณด๋‹ค ๋” ๊ฐ•ํ•˜๋‹ค.

constants๋Š” ๋ณธ๋ž˜ ๊ฐ’์ด ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๋ณ€์ˆ˜๋กœ ์ดํ•ดํ•˜๋ฉด ๋˜๋Š”๋ฐ, ์ด constant ๋ณ€์ˆ˜๋Š” swift์—์„œ ์ฝ”๋“œ๋ฅผ ๋” ์•ˆ์ „ํ•˜๊ณ  ๋ช…ํ™•ํ•˜๊ฒŒ ํ•ด์ค€๋‹ค. 

Tuple์€ value๋“ค์„ ๊ทธ๋ฃนํ™” ํ•˜์—ฌ ์ „๋‹ฌ, ์ƒ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์—ฌ๋Ÿฌ value๋“ค์„ ํ•จ์ˆ˜๋กœ๋ถ€ํ„ฐ return ํ•ด์•ผํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‹ค์Œ์€ swift์˜ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ powerfulํ•œ ํŠน์ง•์ด๋‹ค. ๋ฐ”๋กœ Optional์ด๋‹ค. ์ด๋Š” ๊ฐ’์ด ์žˆ์œผ๋ฉด ๊ฐ’์„, ์—†๋‹ค๋ฉด nil์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ด ํƒ€์ž…์€ ํด๋ž˜์Šค ๋ฟ ์•„๋‹ˆ๋ผ ๋ชจ๋“  ์œ ํ˜•์— ๋Œ€ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 

swift๋Š” type-safe ์–ธ์–ด์ด๋‹ค. ์ฆ‰, ์šฐ๋ฆฌ๊ฐ€ ์ง  ์ฝ”๋“œ์—์„œ ์ž˜๋ชป๋œ ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋ฅผ ์ฃผ์–ด ์ธ์ง€ํ•˜๊ฒŒ ํ•ด์ค€๋‹ค. 

๊ทธ ์˜ˆ๋กœ, ์ผ๋ฐ˜ String ๋ณ€์ˆ˜์— optional string ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค.

 

 

Constants and Variables

Constant์™€ variable์˜ ์ด๋ฆ„์„ ์ง€์„ ๋•Œ๋Š” ํ•ด๋‹น ๊ฐ’๊ณผ ๋น„์Šทํ•˜๊ฒŒ ์ •ํ•˜๋Š” ๊ฒƒ์ง€ ์ข‹๋‹ค.

Constant(์ƒ์ˆ˜)๋Š” ์ผ๋‹จ ์„ค์ •๋˜๋ฉด ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์ง€๋งŒ, Variable(๋ณ€์ˆ˜)๋Š” ๋‚˜์ค‘์— ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

Constants์™€ Variable์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์‚ฌ์šฉ ์ „์— ์„ ์–ธ ํ•ด์•ผ ํ•œ๋‹ค. ์ƒ์ˆ˜์™€ ๋ณ€์ˆ˜๋Š” ๊ฐ๊ฐ ์„ ์–ธ์— ์‚ฌ์šฉํ•˜๋Š” ํ‚ค์›Œ๋“œ๊ฐ€ ๋‹ค๋ฅด๋‹ค.

์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

const -> let
variable -> var

๋ณ€์ˆ˜ ์„ ์–ธ์˜ ์˜ˆ๋ฅผ ๋ณด๋ฉด ์ด๋Ÿฌํ•˜๋‹ค. (๊ณต์‹ ๋ฌธ์„œ์—์„œ ์ œ์‹œํ•œ ์˜ˆ์‹œ์ด๋‹ค.)

let maximumNumberOfLoginAttempts = 10 // ์ตœ๋Œ€๊ฐ’์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š”๋‹ค.
var currentLoginAttempt = 0 // ์ดˆ๊ธฐ ๊ฐ’์„ ์„ค์ •ํ•œ๋‹ค.
var x = 0.0, y = 0.0, z = 0.0 // ์ด๋ ‡๊ฒŒ ํ•œ ์ค„์— ๊ตฌ๋ถ„ํ•ด์„œ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

type annotations

์ƒ์ˆ˜๋‚˜ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ type annotiation์„ ์‚ฌ์šฉํ•˜์—ฌ ์–ด๋–ค ์œ ํ˜•์˜ ๊ฐ’์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋ช…ํ™•ํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์ด welcomMessage์— String ๋ณ€์ˆ˜๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์Œ์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์—ฌ๊ธฐ์—์„œ ':' ์ฆ‰ ์ฝœ๋ก ์€ ~์˜ ์œ ํ˜•์ด๋‹ค ๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

var welcomeMessage: String // String value๋งŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

welcomeMessage = "Hello" // ๋‹ค์Œ๊ณผ ๊ฐ™์ด String ๊ฐ’์„ ์—๋Ÿฌ ์—†์ด ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

var red, green, blue: Double // ์ด๋ ‡๊ฒŒ ์ฝค๋งˆ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ํ•œ ์ค„์— ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

Naming Constants and Variables

 

728x90
๋ฐ˜์‘ํ˜•