Что такое функции. Сигнатура функции

Закрыто
Admin
Главный админ
Сообщения: 214
Зарегистрирован: 28 окт 2021 14:01

Что такое функции. Сигнатура функции

Сообщение Admin »

Предыдущая статья: Условные ветвления if-else

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

Объявляется функция следующим образом. [тип возвращаемого значения] [имя функции] [тип и имена получаемых параметров] [код функции].Правила именования функции, аналогичны правилам именования переменных.

Код: Выделить всё

int calculator(int a, int b){
 return a + b;
}
Данная функция возвращает значение типа int, в качестве параметров принимает два значения типа int.
Параметры функции, объявленные внутри круглых скобок, являются локальными и доступны только внутри функции.
Функция может не иметь параметров. Тогда нужно просто оставить пустые круглые скобки.

Код: Выделить всё

int calc(){
  return 0;
}
Если перед именем функции указан тип возвращаемого значения, последней строкой в функции должен стоять оператор return, после которого нужно указать возвращаемое значение или имя переменной. Возвращаемое значение должно быть того же типа, который указан перед именем функции.

Корректный return

Код: Выделить всё

int func(){
int i = 10 + 5;
return i;
}
Некорректный возврат значения, который вызовет сбой в работе скрипта.

Код: Выделить всё

int func(){
int i = 10 + 5;
Point p = Point.get(0, i);
return p;
}
Функция может не возвращать значение. В таком случае перед именем функции указывается ключевое слово void. Если функция не возвращает значение, тогда и return не нужно добавлять в код функции.

Код: Выделить всё

void func(int x, int y){
	click(x, y);
}
В Perfect Click уже описано множество встроеных функций, которые предоставляют доступ к различным возможностям.
Например, click(0, 0) это как раз и есть вызов функции. Эта функция не возвращает значения то есть перед именем указано void. Называется, как вы уже догадались, click и принимает два значения типа int. Чтоб каждый раз не описывать словами функцию, в программировании используется сигнатура функции.

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

Сигнатура функции click выглядит следующим образом

Код: Выделить всё

void click(int, int); 
А это сигнатура findImg

Код: Выделить всё

Point findImg(Image);
То есть функция возвращает значения типа Point и принимает значение типа Image. О назначении этой и других функций вы узнаете в последующих главах руководства.

Кроме встроенных функций, в скриптах вы можете создавать и использовать собственные. Это бывает крайне удобно, когда в вашем скрипте много однотипного повторяющегося кода. Этот код можно вынести в функции и вместо 10 строчек кода, писать только одну строку с вызовом функции. Нужно отметить один важный момент, функция в скрипте должна быть описана до своего вызова. Если вы попытаетесь вызвать функцию выше ее описания, скрипт упадет с ошибкой.

Типичный пример использования функций

Код: Выделить всё

boolean hasAnimal(){
return hasImg(kat) || hasImg(dog) || hasImg(mouse);
}
//…
//…
while(!hasAnimal()){
   sleep(1000);
}
// bla bla bla
if(hasAnimal())
  click(x, y);
Как видите использование функции экономит время и делает код чище.


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