идентификаторы

Предыдущая тема Следующая тема Перейти вниз

идентификаторы

Сообщение  Eric-S в Пт Авг 29, 2008 8:42 am

Идентификатор это уникальное символическое имя, которым в программе обозначаються различные пользовательские конструкции. Такие как переменные, перечисления, функции, процедуры, свойства и пользовательские типы или пространства имён.


Идентификатор может состоять из символов латинского алфавита от "a" до "z", цифр "0", "1" до "9", а также символа подчёркивания "_". Регистр символов не важен, он не учитываеться. Идентификатор не может начинаться с цифры.

К примеру, вот коректные идентификаторы:

myVar
Foo
MyFunction
a123
v_15c

Вы можете писать: "Lesha" или "lesha", можно даже "lEsHa" значение не имеет, в каком регистре набран идентификатор, он будет считаться одним и тем же.

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


переменная пишеться маленькими буквами, каждое слово начинается с большой буквы.
authorFulName.


Имя функции или процедуры пишеться с маленькой буквы, но слова разделяються символом подчеркивания "_".
get_author_name
set_author_name

Хотя в этом случае всё сложнее. Есть другая традиция, которая также используеться. Имя функции или процедуры пишеться с большой буквы и каждое слово тоже с большой.
InStr, FreeFile.

Традиционно функция которая получает некое значение начинаеться с "get_", а процедура которая устанавливает это же значение начинаеться с "set_".
get_iniParam
set_iniParam


Также имена функций в динамических библиотеках стараються начинать с имени библиотеки или продукта. Например:
MYSQL_query
MYSQL_init
MYSQL_getRows
В таких идентификаторах, первое слово вообще пишеться большими буквами.


Константы же пишут заглавными буквами, чтобы они выделялись.
NULL, FALSE, TRUE.


Идентификаторы следует выбирать понятные, но не очень сложные. В идеале имя переменной должно пояснить, для чего она нужна. Этоже касаеться и функций.

Хотя freebasic может поддерживать очень длинные идентификаторы (ограничения по длине не оговорены), рекомендую использовать не очень длинные. И вам и читающему будет легче. А на быстродействии это не скажеться. (разве что при работе с внешними библиотеками, но тоже незаметно.)

В принципе идентификатор может быть длинной до 2 gb, но тогда не останеться места для программы.


Из старого qbasic пришла традиция завершать имена переменных суфиксными символами (literal sufix)., но freebasic не обязывает вас придерживаться старого стиля. Но кому-то может показаться удобным оканчивать имя переменной типа string символом "$". Суфиксные символы вы можете посмотреть в приложении стандартные типы переменных и ограничения


И последнее, зато крайне важное.
Пространство для идентификаторов переменных, функций, констант совмещено.
По этому вы не можете использовать в качестве идентификаторов зарезервированные слова (уже используемые идентификаторы).

И если компилятор ругнёться на ваш
Код:

dim string as string

2.bas(2) error 4: Duplicated definition, found 'string' in 'dim string as string'
То не стоит удивляться.



традиции


Это так сказать не писанные правила. Откуда они взялись я не знаю. В учебниках или мануалах, что-то пришло из математики или просто было удобно.
По сути, эти советы субьективны.
Если у вас есть что сказать, дополнить или покритиковать, то напишите.

Создавайте эти переменные, в границах одной небольшой функции. Не делайте их глобальными, и наче сами запутаетесь.

"i" - используеться в цикле.
Код:

for i = 1 to 10
print i
next

Если есть вложенный цикл, то, для большого используют переменную "j" или "k".
"k" более предпочтительна, поскольку "j" похожа на "i". Хотя "k" можно также понять как коэфициэнт.
Код:

for k = 1 to 10
for i = k to 10
print i
next
next


"p" - позиция.
Например позиция символа в строке.
Код:

str1 = "hello, world!"
p = 5
print str1[p]
Может также быть позицией читаемой записи из файла.


А вот в реальных программах использовать "str1", "str2" и т.п. крайне не рекомендуеться.
Либо напишите просто "s1", "s2", но будет много лучше, если вы дадите осмысленые имена.


"l" или "len1" вполне приемлема и понятна для того что в ней храниться длина строки.

Я использую "oneChar" для хранения одного символа при сканировании строки.

Код:

s = "hello, world"
l = len(s) - 1
for p = 0 to l
oneChar = s[p]
next

"q" - используеться, для хранения состояния конечного автомата.

"n" - используеться для отсчётов или нумерации.

"e" - тоже бывает в циклах, но обычно имееться в виду какой-то элемент.

"x", "y", "z" - координаты чего-нибудь.
Чаще они добавляються в конец другого идентификатора,

cursor_x = 37
cursor_y = 55
cursor_z = 0

"t" - это для времени.

Можно часто встретить "tmpstr" или "strtmp" это для временной строки.
Примерно тоже самое делают "buf1" и "buf2", в книгах встречаеться часто, а в реальности не помню.

"msg" - какое-то сообщение. Оно может быть текстом сообщения выводимого на экран или сообщения которыми объмениваються драйвера.

Я для номера открытого файла использую переменные "ff1", "ff2" и т.д.
Код:

ff1 = FreeFile
open "test1.bas" for input as #ff1
line input #ff1, s
close #ff1

Под влиянием языка C, номер открытого файла ещё называют хэндлом и можно встретить такой вариант
Код:

fh1 = Freefile
Но я не приветствую такое портирование, поскольку это разные вещи, номер и хэндл файла.

"id1" - идентификатор. В данном случае имееться в виду номер записи, например в базе данных.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения