Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.09.09;
Скачать: [xml.tar.bz2];

Вниз

string / String   Найти похожие ветки 

 
test000   (2007-08-14 11:50) [0]

Почему в delphi, написание большинства типов начинается с большой буквы (например Integer, Pointer, ...), а вот тип string пишется с маленькой буквы?

Я конечно понимаю, что написание индивидуально для каждого, но если посмотреть борландовские исходники, то там тоже везде string пишется с маленькой буквы.

И зачем именно его "подсвечивают" болдом?


 
Ega23 ©   (2007-08-14 11:51) [1]

А string это не совсем тип.


 
Плохиш ©   (2007-08-14 11:56) [2]


> Почему в delphi, написание большинства типов начинается
> с большой буквы (например Integer, Pointer, ...), а вот
> тип string пишется с маленькой буквы?

В связи с тем, что среда делфи является регистронезависимой, вопрос теряет всякий смысл. Напоминает "Почему русские хавают вилками, а китайцы - палочками"...


 
homm ©   (2007-08-14 12:13) [3]

> И зачем именно его "подсвечивают" болдом?

А у меня не подсвечивает блдом, он у меня зеленый :P


 
Однокамушкин   (2007-08-14 12:17) [4]

Потому что названия остальных типов это идентификаторы, смысл которых можно при желании и переопределить, а вот string это зарезервированное слово... Зарезервированные слова принято писать в нижнем регистре...


 
Lacmus ©   (2007-08-14 12:21) [5]



procedure TForm36.Button1Click(Sender: TObject);
begin
 if TypeInfo(string) <> nil then
   ShowMessage("OK")
 else
   ShowMessage("Fail")
end;



 
Mystic ©   (2007-08-14 12:30) [6]

Ввиду того, что можно написать, например так:
var
 S: string[21];

то тип string должен специально обрабатываться правилами синтаксического разбора, а значит для него должна быть выделена специальная лексема в лексическом анализаторе, а само слово "string" должно входить в список зарезервированных слов. По соглашениям от Borland, зарезервированные слова должны писаться в нижнем регистре.


 
Котик Б   (2007-08-14 12:41) [7]

Предлагаю для отсутсвия путаницы ввести новый типы:

type
 TInteger = type Integer;
 TPointer = type Pointer;

... и т.д. и т.п. :)


 
@!!ex ©   (2007-08-14 12:45) [8]

> [7] Котик Б   (14.08.07 12:41)

Путаницы нет.
базовые типы не содержат префикса, остальыне - содержат.


 
DrPass ©   (2007-08-14 12:45) [9]


> Lacmus ©   (14.08.07 12:21) [5]
>
>
> procedure TForm36.Button1Click(Sender: TObject);

...А что делают предыдущие 35 форм этого замечательного проекта?


 
Паша 1   (2007-08-14 12:46) [10]

поглядел у себя. и integer и string пишу с маленькой буквы. как оказалось. и ничего не мешает. удивительное дело!


 
DVM ©   (2007-08-14 12:54) [11]

я integer с маленькой пишу тоже.


 
Lacmus ©   (2007-08-14 12:54) [12]

>DrPass ©   (14.08.07 12:45) [9]

Это особенность именования форм и модулей новых проектов для Delphi 2005-2007, если они расположены в одном каталоге.


 
Игорь Шевченко ©   (2007-08-14 12:56) [13]

DVM ©   (14.08.07 12:54) [11]


> я integer с маленькой пишу тоже.


а правильные пацаны пишут iNtEgEr


 
TUser ©   (2007-08-14 13:02) [14]

A вот Colorer выделяет слово integer, как и string.


 
Паша 1   (2007-08-14 13:06) [15]


> Игорь Шевченко ©   (14.08.07 12:56) [13]

и как потом они это дело читают? я вот  FieldByName задолбался писать с шифтом. три раза шифт давить нужно. но - пишу. дурацкая привычка...


 
Игорь Шевченко ©   (2007-08-14 13:07) [16]


> и как потом они это дело читают?


Чукча не читатель


 
Lacmus ©   (2007-08-14 13:12) [17]



type
 on = Integer;  // ошибки нет



on - зарезервированное слово.


 
Однокамушкин   (2007-08-14 14:58) [18]


> Lacmus ©   (14.08.07 13:12) [17]
> on - зарезервированное слово.

Ни разу не зарезервированное... откройте в справке список зарезервированных слов - нет там слова on, on - это директива...


> Directives are words that are sensitive in specific locations
> within source code. Directives have special meanings in
> the Delphi language, but, unlike reserved words, appear
> only in contexts where user-defined identifiers cannot occur.
>  Hence--although it is inadvisable to do so--you can define
> an identifier that looks exactly like a directive.


Редактор кода не делает разницы между зарезервированными словами и директивами и подсвечивает их одинаково... Смысл тут такой - когда в язык вноятся изменения, нужно по максимуму сохранить совместимость с существующими исходниками, а новые зарезервированные слова могут совпадать с тем, как кто-то назвал переменную в своих исходниках, вот и стараются сделать поменьше зарезервированных слов... Специально придумали эти самые директивы - не совсем зарезервированные слова, но и не совсем идентификаторы, а так, нечто среднее... К директивам относятся также такие слова как message, stdcall, register и т.п. Кстати, в исходниках VCL параметры обработчиков сообщений часто называются Message, и эти имена подсвечиваются, как зарезервированные слова - меня это сильно раздражает...


 
Lacmus ©   (2007-08-14 15:20) [19]

>Однокамушкин   (14.08.07 14:58) [18]

Вряд ли директивы:

The words at and on also have special meanings, and should be treated as reserved words.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2007.09.09;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.036 c
2-1187143349
Alex_AA
2007-08-15 06:02
2007.09.09
Как программно выделить узел в TreeView?


2-1186652202
shtam
2007-08-09 13:36
2007.09.09
chm


15-1187188524
Cobalt
2007-08-15 18:35
2007.09.09
легкий текстовый редактор rtf


2-1187263881
gentos
2007-08-16 15:31
2007.09.09
закрытие fsMDIChild формы


15-1187172270
vajo
2007-08-15 14:04
2007.09.09
Почему то виндовс стала английской





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский