Каковы ограничения примитивных типов символов в D?

Хорошо, учитывая выбор, я использовал бы объекты. Я создал бы объект для каждой записи, где каждый объект имеет children набор, и сохраните их всех в массиве помощника (/хеш-таблица), где идентификатор является ключом. И блиц через набор однажды, добавляя детей к соответствующим дочерним полям. Простой.

, Но потому что Вы не забава путем ограничения использования некоторого хорошего ООП, я, вероятно, выполнил бы итерации на основе:

function PrintLine(int pID, int level)
    foreach record where ParentID == pID
        print level*tabs + record-data
        PrintLine(record.ID, level + 1)

PrintLine(0, 0)

Редактирование: это подобно нескольким другим записям, но я думаю, что это немного более чисто. Одна вещь я добавлю: это чрезвычайно интенсивно SQL. Это противно . , Если у Вас есть выбор, пойдите путем ООП.

13
задан Vladimir Panteleev 12 July 2009 в 20:08
поделиться

1 ответ

Один char или wchar представляет кодовую единицу UTF . Это означает, что сам по себе char in может либо представлять символ ASCII (0–127), либо быть частью последовательности UTF-8, представляющей символ Unicode ( кодовая точка ). Только тип dchar может представлять весь символ Unicode, поскольку в Unicode имеется более 65536 кодовых точек.

Приведение одного типа строкового типа ( string , wstring и dstring , которые представляют собой просто динамические массивы символьных типов) не будут автоматически преобразовывать свое содержимое в соответствующее представление UTF. Для этого необходимо использовать функции toUTF8 , toUTF16 и toUTF32 из std.utf (или toString / toString16 / toString32 из tango.text.convert.Utf , если вы используете Tango).

Пользователи реализовали строковые классы, которые будут автоматически использовать наиболее эффективное по памяти представление, которое может отображать каждый символ в одну кодовую единицу. Это позволяет быстро разрезать и индексировать с минимальными затратами памяти. Одной из таких реализаций является mtext Кристофера Э. Миллера.

Дополнительная литература:

15
ответ дан 2 December 2019 в 00:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: