К сожалению, с точки зрения новичка, статья в учебнике очень запутанная, важные моменты пропадают в общем "полотенце" текста (их я еще раз проговорю ниже), пришлось разбираться методом тыка и чтением примеров скриптов с форума, где применяется этот оператор.
Итак, сперва поделюсь впечатлениями от использования function.
1. Код уменьшился в размерах. Одинаковые места в коде выносятся в функцию, и нет необходимости каждый раз копировать их в тело программы.
2. Код стал более читаемым (блок функций размещается в конце, тело программы становится чище, без нагромождения одинаковых строк)
3. Стало легче исправлять ошибки (не нужно править каждый повторяющийся участок, достаточно исправить нужное место в функции)
Теперь я хотел бы привести несколько примеров использования.
Дело в том, что по примерам из учебника, я вообще не понял, зачем оно нам надо, что писать в скобочках, что за return и куда его пихать. Зато по примерам в скриптах научился заменять куски кода на коротенькое слово:
1. Комбинации горячих клавиш
пример (Отобразить)
2.1. Значения переменных поменялись, а действия над ними те же.
простенький пример (Отобразить)
2.2. В этом примере важно объявить все переменные вне функции, поскольку все, что внутри функции - видит только эта функция.
простенький пример НЕ БУДЕТ работать (Отобразить)
Мы объявили переменную d в функции, по логике мы сделали это перед messagebox(format(d)); , тем не менее "тело" программы ее не увидит.
2.3. Это касается также goto и их меток: goto внутри функции должен вести в любой участок внутри этой функции и не может отсылать "наружу", в тело программы. Это дает и небольшое преимущество: имена меток могут быть не уникальными.
3. Можно внутри одной функции ссылаться на другу функцию:
схематичный пример (Отобразить)
4. Хотел разобраться с массивами, но это выше моих сил, поэтому надеюсь на вашу помощь.
Задача банальная: как добавить в функцию загрузку, поиск и клик в центр изображения, меняя лишь входные данные, а именно адрес к изображению? Не заморачиваясь размерами загружаемой картинки и т.д.
CODE:
string adress="C:\1.bmp";
klik_centr();
function klik_centr(){код;}
string adress="C:\1.bmp";
klik_centr();
function klik_centr(){код;}
На понятие пунктов 2.2 и 2.3 у меня ушло некоторое время, что и послужило причиной написания данного сообщения.
Всем спасибо. Надеюсь, данный пост будет кому-то полезен.
(Добавление)
UPD: По своему вопросу (пункт 4) нашел ответ на форуме.
Объяснено, как можно сделать и как нужно сделать.