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 |