๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

swift ๋ฌธ๋ฒ•๐Ÿ–ค

[SWIFT] ์•„์Šคํ‚ค์ฝ”๋“œ ๋ฐ”๊พธ๋Š” ๋ฐฉ๋ฒ•๐Ÿ•ต๐Ÿป

Character -> ์•„์Šคํ‚ค ์ฝ”๋“œ

Character๋ฅผ ์•„์Šคํ‚ค์ฝ”๋“œ๋กœ ๋ฐ”๊พธ๋Š”๋ฐ์—๋Š” ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. 

์ฝ”ํ…Œ ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด ์•Œ์•„๋‘๋ฉด ์ข‹์„ ๋‚ด์šฉ์ž„์œผ๋กœ ํฌ์ŠคํŒ…ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.

 

์ฒซ๋ฒˆ์งธ :
asciiValue์†์„ฑ์„ ์‚ฌ์šฉ
var asciiValue: UInt8? { get }

asciiValue๋Š” UInt8?ํƒ€์ž…์ด๋‹ค. 

๋”ฐ๋ผ์„œ ์ƒํ™ฉ์— ๋”ฐ๋ผ ํƒ€์ž…๋ณ€ํ™˜์„ ํ•ด์ค˜์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ์œผ๋ฉฐ, ์˜ต์…”๋„ ๋ฐ”์ธ๋”ฉ์ด ํ•„์š”ํ•˜๋‹ค.

 

์ฝ”๋“œ ๊ธธ์ด๋Š” ์งง์œผ๋‚˜ ๋’ค์˜ ๋ฐฉ๋ฒ•๋ณด๋‹ค ๋А๋ฆฌ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

๋˜ํ•œ ์œ„ ๋ฉ”์†Œ๋“œ๋Š” swift 5์ด์ƒ์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

var c : Character = "a"

print(c.asciiValue!)

๋‘๋ฒˆ์งธ :
unicodeScalars์†์„ฑ์„ ์‚ฌ์šฉ

var unicodeScalars: Character.UnicodeScalarView { get }

unicodeScalars ์†์„ฑ์„ ์ด์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด์˜ UnicodeScalarView์— ์—‘์„ธ์Šค ํ•ญ ์ˆ˜ ์žˆ๋‹ค. 

unicode scalar ๊ฐ’์€ ์œ ๋‹ˆ์ฝ”๋“œ์˜ ๊ธฐ๋ณธ๋‹จ์œ„์ธ 21๋น„ํŠธ ์ฝ”๋“œ์ด๋‹ค. 

๊ฐ ์Šค์นผ๋ผ ๊ฐ’์€ ์œ ๋‹ˆ ์ฝ”๋“œ ๊ฐ’์ด๋‹ค. 

์Šค์นผ๋ผ ์ธ์Šคํ„ด์Šค์ด๋ฉฐ ์ฝ”๋“œ ์œ ๋‹ˆ์ฝ”๋“œ ๋ฌธ์ž ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹ UTF-32 ์œ ๋‹›๊ณผ ๋™์ผํ•˜๋‹ค.

 

var c : Character = "a"

print(c.unicodeScalars.first!.value)

 

 

Charater๋Š” String์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, String๋ฌธ์ž์—ด์—์„œ์˜ ์š”์†Œ ์ ‘๊ทผ๊ณผ ๊ฐ™์ด first ์š”์†Œ์— ์ ‘๊ทผํ•ด์ค˜์•ผ ๊ฐ’ ๊ณ„์‚ฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

๋‘๋ฒˆ์งธ ๋ฐฉ๋ฒ•์ด ๋ณด๋‹ค ๋น ๋ฅธ ๋ฐฉ๋ฒ•์ด๊ธด ํ•˜์ง€๋งŒ, ๋ฌธ์ œ ์˜ํ–ฅ์— ํฌ๊ฒŒ ๋ฏธ์น˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ฒซ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์„ ์จ๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

 

 

์•„์Šคํ‚ค์ฝ”๋“œ -> Character

typealias UnicodeScalar = Unicode.Scalar

var c : Character = "a"

print(Unicode.Scalar(c.asciiValue!))

print(Unicode.Scalar(97)!)

 

asciiValue๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ๋ž‘, Int(97)์„ ์‚ฌ์šฉํ–ˆ์„๋•Œ ์˜ต์…”๋„ ๋ฐ”์ธ๋”ฉ์— ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.

 

์ด ์ด์œ ๋Š” initializer์˜ ์ฐจ์ด๋•Œ๋ฌธ์ธ๋ฐ,

 

init?๋Š” ์˜ต์…”๋„ ์ƒ์„ฑ์ž๋กœ ์ผ๋ฐ˜์ƒ์„ฑ์ž์™€ ๋‹ฌ๋ฆฌ ์ดˆ๊ธฐํ™” ๊ณผ์ • ์ค‘์— ์‹คํŒจํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋œ๋‹ค. 

 

์• ํ”Œ ๊ณต์‹๋ฌธ์„œ์—์„œ ํ™•์ธํ•ด๋ณด๋ฉด prarameter์˜ ์ž๋ฃŒํ˜•์ด UInt32, UInt16, Int, String์ธ ๊ฒฝ์šฐ์—๋Š” ์˜ต์…”๋„ ์ƒ์„ฑ์ž๋กœ ์„ ์–ธ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜ต์…”๋„๋ฐ”์ธ๋”ฉ์ด ํ•„์š”ํ•˜๋‹ค.

'swift ๋ฌธ๋ฒ•๐Ÿ–ค' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[SWIFT] ํŠœํ”Œ(Tuple)  (0) 2023.07.10
[SWIFT] ํƒ€์ž…์บ์ŠคํŒ…(Type Casting)  (0) 2023.07.10
[SWIFT] reduce(_:_:)ํ•จ์ˆ˜  (0) 2023.06.17
[SWIFT] enumerated() ํ•จ์ˆ˜  (0) 2023.06.15
[SWIFT] wholeNumberValue() ํ•จ์ˆ˜  (0) 2023.06.15