λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

swift λ¬Έλ²•πŸ–€

[SWIFT] Intν•¨μˆ˜ λΏŒμ…”λ³΄κΈ°

μ •μˆ˜ν˜•μ„ ν‘œν˜„ν•˜λŠ” λ°μ΄ν„°νƒ€μž…μ—λŠ” Int8 , Int16 , Int32 ,Int63이 μžˆλ‹€. 

 

μ‹€μ œ κ°œλ°œν• λ•Œ 자주 μ‚¬μš©ν•˜λŠ” Intν˜•μ€ μ‚¬μš©μžμ˜ μ‚¬μš©ν”Œλž«νΌμ— κ·Όκ±°ν•˜μ—¬ μ„€μ •λœλ‹€. (λ§Œμ•½ 32λΉ„νŠΈ ν”Œλž«νΌμ„ μ‚¬μš©ν•œλ‹€λ©΄ Int == Int32 , 64λΉ„νŠΈ ν”Œλž«νΌμ„ μ‚¬μš©ν•œλ‹€λ©΄ Int == Int64κ°€ λœλ‹€.

 

Intν˜• 자주 μ‚¬μš©ν•˜λŠ” μƒμ„±μž κ΅¬κ²½ν•˜κΈ°

 

Converting Floating-Point Values (μ‹€μˆ˜ν˜• 값을 λ°”κΎΈκΈ°)

init(_:)

Int(n)처럼 μ‚¬μš©ν•˜λ©΄, Double, Float ,Float16, Float80인 n을 Intν˜•μœΌλ‘œ λ³€ν™˜ν•œλ‹€.

 

 

Converting with No Loss of Precision (정밀도 μ €ν•˜μ—†μ΄ λ°”κΎΈκΈ°)

init(exactly:)

μ „λ‹¬λœ 값이 정확도 손싀 없이 ν‘œν˜„λ  수 μ—†λŠ” κ²½μš°λŠ” nil값을 λ°˜ν™˜ν•œλ‹€.

let x = Int(exactly: 21.0)
// x == Optional(21)
let y = Int(exactly: 21.5)
// y == nil

21.0 == 21κ³Ό μˆ˜ν•™μ μœΌλ‘œ 같은 값이기 λ•Œλ¬Έμ— μ˜΅μ…”λ„ κ°’μœΌλ‘œ λ°˜ν™˜ν•œλ‹€. ν•˜μ§€λ§Œ 21.5 != 21 μ΄λ―€λ‘œ nil값을 λ°˜ν™˜ν•œλ‹€.

 

Converting Strings (λ¬Έμžμ—΄ λ°”κΎΈκΈ°)

init(_:)

μ „λ‹¬λœ λ¬Έμžμ—΄μ€ + λ˜λŠ” -  기호문자둜 μ‹œμž‘ν•œ λ‹€μŒ ν•˜λ‚˜ μ΄μƒμ˜ 숫자둜 μ‹œμž‘ν•  수 μžˆλ‹€. 

let x = Int("123")
// x == 123
let y = Int("+123")
// y == 123

λ§Œμ•½ μ „λ‹¬λœ λ¬Έμžμ—΄μ΄ μ ν•©ν•˜μ§€ μ•Šμ€ ν˜•μ‹μ΄κ±°λ‚˜ , 값을 λ‚˜νƒ€λ‚Ό 수 μ—†λŠ” 경우 nil을 λ¦¬ν„΄ν•œλ‹€.

Int(" 100") // Includes whitespace
Int("21-50") // Invalid format
Int("ff6600") // Characters out of bounds
Int("10000000000000000000000000") // Out of range

μœ„μ™€ 같은 경우 nil을 λ¦¬ν„΄ν•œλ‹€.

 

λ©”μ„œλ“œλŠ” λ‚˜μ€‘μ— 좔가해봐야지,,