์๋ ํ์ธ์ ์ ์ธ์ ๋๋ค!
๊ธ์ ๊ต์ฅํ ์ค๋๋ง์ ์ฌ๋ฆฌ๊ฒ ๋์๋๋ฐ,,
๊ทธ๋์ TIL ์คํฐ๋๋ฅผ ํ๋ฉฐ ๊นํ์ ๊ทธ๋ ๊ณต๋ถํ๊ฑธ ์ ๋ก๋ํ๋ค๋ณด๋
ํฐ์คํ ๋ฆฌ ์
๋ก๋๋ฅผ ๊ฑฐ์ ๊น๋จน๊ฒ๋... ๋จธ ๊ทธ๋ฐ ์ฌ์ฐ์ด...์์ง๋ง ์ฌ์ค ํ๊ณ๊ณ ..ใ
TIL ๊ธ์ ํฐ์คํ ๋ฆฌ์๋ ์ฎ๊ธฐ๋ฉด์ ์ด์ ๋ค์ ๊พธ์คํ ์ ๋ก๋๋ฅผ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค!! ์์ข์~
์ค๋์ Swift์์ ์๋ฃ๋ฅผ ๋ช ์ํ๋ ๋๊ฐ์ง ๋ฐฉ๋ฒ์ธ ํ์ ์ถ๋ก ๊ณผ ํ์ ์ด๋ ธํ ์ด์ ์ ๋น๊ตํ๋ฉฐ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค!
Swift์์์ ์์, ๋ณ์ ์ ์ธ
- let : ์์ ์ ์ธ ํค์๋
- var : ๋ณ์ ์ ์ธ ํค์๋
let ์์๋ช
: ํ์
= ๊ฐ
var ๋ณ์๋ช
: ํ์
= ๊ฐ
// ์ ์ธ ์์
let name: String = "Eunju"
var age: Int = 20
์์ ๊ฐ์ด let๊ณผ var ํค์๋๋ฅผ ์ด์ฉํด ์์๋ ๋ณ์๋ฅผ ์ ์ธํ ์ ์์ต๋๋ค.
๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์ ํ์
์ ๋นผ๊ณ ์๋์ ๊ฐ์ด ์จ์ค๋ค๋ฉด?? ์๋ฌ๊ฐ ๋ ๊น์?
ํ์ ์ถ๋ก (Type Inference)
let name = "Eunju"
var age = 20
์ ๋ต์ ์ด๋ ๊ฒ ์ ์ธํ๋ ๊ฒ๋ ๊ฐ๋ฅํฉ๋๋ค!!
์์ ๊ฐ์ด ์์, ๋ณ์์ ํ์
๋ ์ ํํ ๋์ค๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
์์์ ๊ฐ์ด ๋ณ์๋ ์์๋ฅผ ์์ฑํ ๋ ๋ฐ์ดํฐ ํ์
์ ์๋ตํ๋ฉด ์ปดํ์ผ๋ฌ๊ฐ ๋ณ์ ๊ฐ์ ํ์
์ ์ถ๋ก ํ์ฌ ํ์
์ ์ง์ ํด์ค๋๋ค.
์ด๋ฅผ ํ์
์ถ๋ก (Type Inference) ์ด๋ผ๊ณ ํฉ๋๋ค.
ํ์
์ถ๋ก ์ ์ ํ์์๋ Swift์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ด๋ผ๊ณ ์๊ฐํ๊ณ ์์ต๋๋ค.
๊ฐ๊ฒฐํ๊ฒ ๋ณ์๋ ์์ ์ ์ธ์ ํด์ค ์ ์๋ค๋ ์ ์ด ์ฅ์ ์ด๊ฒ ์ฃ ?
ํ์ ์ถ๋ก ์ ๋ฌธ์ ์
ํ์ง๋ง, ํ์ ์ถ๋ก ์๋ ๋ฌธ์ ์ ์ด ๋ช๊ฐ์ง ์กด์ฌํฉ๋๋ค.
1. ํ์ ์ถ๋ก ์ผ๋ก ์ป์ด์ง๋ ํ์ ์ด ์ํ๋ ํ์ ์ด ์๋ ๊ฒฝ์ฐ
ํ์
์ถ๋ก ๊ธฐ๋ฅ์ด ๋ด๊ฐ ์ํ๋ ๋๋ก ๋์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
์์๋ก ๋ณด๊ฒ ์ต๋๋ค!
let num = 10.0
Float ํ์ ์ ์์๋ฅผ ์ ์ธํด์ฃผ๋ ค๊ณ ์์ ๊ฐ์ด ์ ์ธํ์ต๋๋ค.
ํ์ง๋ง, num์ ์๋ฃํ์ ์์ ๊ฐ์ด Floatํ์ด ์๋ Doubleํ์ผ๋ก ์กํ๊ฒ ๋ฉ๋๋ค.
์ํ๋ ๊ฐ์ด ์ถ๋ก ๋์ง ์๋ ์ด์ ๋ ์ปดํ์ผ๋ฌ๊ฐ ์ด๊ธฐ๊ฐ์ ํตํด ์๋ฃํ์ ์ ์ถํ ๋
Float/Double, Character/String ๊ณผ ๊ฐ์ด ์ ๋งคํ ํ์
์ ๊ฒฝ์ฐ, ๋ ํฐ ๋ฒ์์ ์๋ฃํ์ผ๋ก ์ง์ ํ๊ธฐ ๋๋ฌธ์
๋๋ค.
(Float -> Double, Character -> String)
์ด ๋๋ฌธ์ ์ํ๋ ํ์
์ผ๋ก ์ถ๋ก ์ด ๋์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์๊น๋๋ค.
2. ์ด๊ธฐ๊ฐ์ด ์๋ ๊ฒฝ์ฐ(์ ์ธ๊ณผ ์ด๊ธฐํ๋ฅผ ๋ถ๋ฆฌํ ๊ฒฝ์ฐ)
์ ์ธ๊ณผ ์ด๊ธฐํ๊ฐ ๋์์ ์ด๋ฃจ์ด์ง์ง ์๊ณ , ์ ์ธ๊ณผ ์ด๊ธฐํ๊ฐ ๋ถ๋ฆฌ๋ ๊ตฌ๋ฌธ์ผ๋ก ์์ฑ๋ ๊ฒฝ์ฐ ํ์ ์ถ๋ก ์ ์ํ ์ถฉ๋ถํ ๋ฐ์ดํฐ๊ฐ ์์ด ์ ์ ํ ํ์ ์ ์ถ๋ก ํ ์ ์๊ฒ ๋ฉ๋๋ค.
์ด๋ ๊ฒ ํ์ ์ถ๋ก ์ผ๋ก ๋ฌธ์ ๊ฐ ์๊ธฐ๋ ๊ฒฝ์ฐ, ํ์ ์ด๋ ธํ ์ด์ (Type Annotation)์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
ํ์ ์ด๋ ธํ ์ด์ (Type Annotation)
๋ณ์๋ ์์๋ฅผ ์ ์ธํ ๋ ๊ทธ ํ์ ์ ๋ช ์์ ์ผ๋ก ์ ์ธํด ์ค์ผ๋ก์จ ์ด๋ค ํ์ ์ ๊ฐ์ด ์ ์ฅ๋ ๊ฒ์ธ์ง๋ฅผ ์ปดํ์ผ๋ฌ์ ์ง์ ์๋ ค์ฃผ๋ ๋ฌธ๋ฒ์ ํ์ ์ด๋ ธํ ์ด์ (Type Annotation)์ด๋ผ๊ณ ํฉ๋๋ค.
let name: String = "Eunju"
var age: Int = 20
์ด๋ ๊ฒ ์ฒซ ์์์ ๊ฐ์ด ์จ์ฃผ๋ ๋ฐฉ์์ ๋๋ค!
ํ์
์ด๋
ธํ
์ด์
๋ฐฉ์์ผ๋ก ๋ณ์๋ ์์๋ฅผ ์ ์ธํ ๊ฒฝ์ฐ์๋ ํ์
์ ๋ช
์ํด์คฌ์ผ๋ฏ๋ก ์ด๊ธฐ๊ฐ์ด ์์ด๋ ๋ฉ๋๋ค.
์ถ๊ฐ์ ์ผ๋ก ํ์
์ด๋
ธํ
์ด์
๋ฐฉ์์ด ์๋ ๋ฉด์์์ ์ฅ์ ๋ ์์ต๋๋ค.
ํ์
์ถ๋ก ์ ์ปดํ์ผ๋ฌ๊ฐ ํ์
์ ์ถ๋ก ํ๋ ๊ณผ์ ์์ ํ์
์ด๋
ธํ
์ด์
๋ณด๋ค ์๊ฐ์ด ์กฐ๊ธ ๋ ๊ฑธ๋ฆฐ๋ค๊ณ ํฉ๋๋ค!
์๋ ์ฐจ์ด๊ฐ ํฌ์ง ์๊ฒ ์ง๋ง ํฐ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ ์ฐจ์ด๊ฐ ๊ฝค ๋ ์๋ ์๊ฒ ๋ค์!
[์ฐธ๊ณ ์๋ฃ]
'๐ iOS > Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] enumerated() (0) | 2023.01.07 |
---|---|
[Swift] ๊ณ ์ฐจํจ์ - map, filter, reduce (1) | 2022.11.29 |
[Swift] if let๊ณผ guard let์ ์ฐจ์ด (4) | 2022.03.04 |
[Swift] Escaping Closure(ํ์ถ ํด๋ก์ ) (8) | 2022.02.21 |
[Swift] ํด๋ก์ (Closure) (4) | 2022.02.16 |