高校生のときに聞いたことある「スカラー」。
〘名〙 (scalar) 長さ、面積、重さなど、大きさだけで定まる量。常識上の数。ベクトルに対していう。スケーラー。
「方向がない」という雰囲気だけ覚えていたけども。
☀️ UnicodeScalar
以下、サンプルコード。
let data = [
["61"],
["3042"],
["1F635", "200D", "1F4AB"],
["1F468", "200D", "2764", "FE0F", "200D", "1F468"],
["1F1EF", "1F1F5"]
]
for codepoints in data {
let s = String(
codepoints
.map { Int($0, radix: 16)! }
.map { UnicodeScalar($0)! }
.map { Character($0) }
)
print(s)
print(codepoints)
print(
s.unicodeScalars
.map { String($0.value, radix: 16, uppercase: true) }
)
print()
}
変換の流れ的には以下の順序で変換。
[Int]
↕
[UnicodeScalar]
↕
[Character]
↕
String([Character])
☀️ まとめ
「UnicodeScalar」とは「コードポイント !」のことですね。
nil は許しません。
String.unicodeScalars() は、文字のコードポイントパーサーとしても使えます。
👉 Strings and Characters | Documentation