Компонентный Паскаль/Переменные и константы: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 81:
 
==== Литеры набора Unicode ====
Этот набор литер по сравнению с предыдущим является более прогрессивным. Он лишён недостатков Latin-1, но у каждой медали две стороны. Да, теперь в этот набор Unicode помещаются литеры всех языков мира существующих, или когда-либо существовавших. Туда же помещаются различного рода пиктограммы из всех сфер жизни (значки Солнца, Луны, Земли и даже "Серп и молот"). Но, если байтовые литералы было легко сравнивать, так как они располагались в алфавитном порядке, то как понять, какой код меньше и на каком основании: английский литерал "а" или русский литерал "а"? А это совершенно разные литералы. К счастью, все (или почти все) процедуры для работы с литералами Unicode написаны, и сомнительно, что программисту придётся писать что-то своё (с высокой степенью вероятности это будет ''велосипед'', как говорят программисты). Такой тип переменных описывается ключевым словом CHAR:
<source lang="oberon2">
lit_a_en : CHAR; (* английская литера "a" *)
lit_a_ru : CHAR; (* русская литера "а" *)
</source>
Ещё раз стоит обратить внимание -- в данном примере (в наборе Unicode) русские и английские литеры кодируются различными кодами, хотя внешне и выглядят одинаково<ref name="">Кодировка Unicode (Юникод) весьма сложна, убедиться в этом можно прочитав статью про {{w|Юникод}}</ref>.
 
== Примечания ==