یونیکد و اسکالرها (Unicode & Scalars)
رشته ها در سوئیفت «یونیکد (Unicode)» هستند؛ یعنی از همه زبان ها پشتیبانی می کنند. «اسکالر (Scalar)» کوچک ترین کُد یونیکد است. گاهی یک کاراکتر از چند اسکالر ساخته می شود؛ اما سوئیفت آن را یک کاراکتر می شمارد.
کاراکترهای ترکیبی و برابری
ممکن است یک «é» به صورت آماده بیاید یا از «e» + لهجه ترکیبی ساخته شود. با این حال، مقایسه برابر است؛ چون هر دو نمایش یک کاراکتر هستند.
let e1 = "é"
let e2 = "e\u{301}"
print(e1 == e2)
print(e2)
نکته: حروف ترکیبی در شمارش طول، یک کاراکتر حساب می شوند؛ نه چندتا.
نمای اسکالرهای یونیکد
با نمای unicodeScalars می توانی کُدپوینت ها را ببینی. هر مقدار از نوع UnicodeScalar است و عدد آن با value قابل چاپ است.
let s = "e\u{301}"
for scalar in s.unicodeScalars {
print(scalar.value)
}
گام های تمرینی
- یک حرف با لهجه را مستقیم و ترکیبی چاپ کن.
- برابری آن ها را با
==بررسی کن. - کُدپوینت ها را با
unicodeScalarsچاپ کن.
برای مرور سریعِ یونیکد و اسکالرها این صفحه را ذخیره کن. همچنین کاراکترهای ویژه و رشته ها را هم ببین.
جمع بندی سریع
- سوئیفت، یونیکد را درست پشتیبانی می کند.
- یک کاراکتر می تواند چند اسکالر داشته باشد.
- نمایش های مختلف یک حرف برابر هستند.
unicodeScalarsکُدپوینت ها را نشان می دهد.