Зарезервированные слова и идентификаторы Delphi
объявление переменных в Delphi привело меня к рассмотрению вещи, которую я не могу понять.
вопрос в следующем: объявляя строки, можно наблюдать, что string
является зарезервированным словом, при объявлении других типов данных, скажем целых чисел, квалификатор типа данных не является зарезервированным словом, а идентификатором (т. е. Integer
, столица я так говорит).
на самом деле, Delphi позволяет перейти к определению Integer
, который, как вы обнаружите, содержится в системном блоке, но это только представитель, потому что есть комментарий, в котором говорится, что некоторые константы (например,True
), идентификаторы (например,Integer
), функции и процедуры, которые непосредственно встроены в компилятор.
Я не могу понять причины этого выбора.
может кто поможет?
небольшое объяснение разницы между string
и Integer
типы. Следующий код
type
Integer = Char;
var
I: Integer;
begin
I:= 'A';
ShowMessage(I);
end;
правильно и работает как ожидалось, в то время как следующий линия
type
string = Integer;
дает ошибку времени компиляции.
2 ответов
насколько я знаю string
является зарезервированным словом с времен Turbo Pascal. Поэтому причина держать его таким образом должна быть для совместимости.
Pascal - > Turbo Pascal - > Объект Pascal - > Delphi.
проверьте эти ресурсы.
- Язык Программирования Pascal (это показывает зарезервированное слово Паскаля, без строки)
- Turbo_Pascal Версии 6.0 Руководство Программистов (это показывает, как string-зарезервированное слово)
string
должно быть зарезервированным словом, поскольку оно не используется исключительно для обозначения типа System.[Ansi|Unicode]String
. Если string
были простым псевдонимом для некоторого внутреннего типа компилятора, затем string[20]
больше не будет работать. Это не проблема для Integer
, потому что Integer
всегда означает не более чем "типа System.Integer
".