Как определить пустой символ в Delphi - PullRequest
13 голосов
/ 08 марта 2012

Просто для любопытства

Почему в Delphi, если мы определили пустой символ с помощью:

a:Char;
a:='';

, мы получим ошибку: Несовместимые типы: 'Char' и 'string '

Однако, если мы поместим

a:='a';

, все будет хорошо?

Необходимо ли определять пустой символ с помощью: a:=#0?

Ответы [ 2 ]

25 голосов
/ 08 марта 2012

Символ - это один (то есть ровно один) символ.Итак, «a», «∫» и «⌬» все в порядке, но не «ab» (двухсимвольная строка), «Hello World!»(строка из двенадцати символов) или '' (строка из нулевого символа).

Однако символ NULL (# 0) является символом, похожим на любой другой.

Кроме того,символьный тип данных реализован как слово (в современных версиях Delphi), то есть как два байта.Если все эти значения 0, 1, ..., 2 ^ 16 - 1 используются для реальных символов, как бы вы представили свой «пустой символ» в мире?

17 голосов
/ 08 марта 2012

Нет такой вещи как пустое char.char должно иметь значение.Это порядковый тип, простой тип значения.Как целое число, скажем, всегда имеет значение, так же как и char.

Значение #0 не является пустым char, это символ со значением 0, обычно известный как NUL.

...