Процедура — это группа повторно используемого кода, которая может быть вызвана из любой точки вашей программы. Это устраняет необходимость писать один и тот же код снова и снова. Это помогает программистам писать модульный код.
Как и любой другой продвинутый язык программирования, Euphoria также поддерживает все функции, необходимые для написания модульного кода с использованием процедур.
Вы, наверное, видели процедуры, такие как printf () и length () в предыдущих главах. Мы используем эти процедуры снова и снова, но они были написаны в ядре Euphoria только один раз.
Euphoria позволяет вам писать свои собственные процедуры. В этом разделе объясняется, как написать собственную процедуру в Euphoria.
Определение процедуры
Прежде чем использовать процедуру, вам необходимо определить ее. Наиболее распространенный способ определения процедуры в Euphoria — использование ключевого слова процедуры , за которым следует уникальное имя процедуры, список параметров (которые могут быть пустыми) и блок операторов, который заканчивается оператором завершения процедуры . Основной синтаксис показан ниже:
procedure procedurename(parameter-list) statements .......... end procedure
пример
Здесь определена простая процедура sayHello, которая не принимает параметров.
procedure sayHello() puts(1, "Hello there") end procedure
Вызов процедуры
Чтобы вызвать процедуру где-то позже в скрипте, вам просто нужно написать имя этой процедуры следующим образом:
#!/home/euphoria-4.0b2/bin/eui procedure sayHello() puts(1, "Hello there") end procedure -- Call above defined procedure. sayHello()
Это дает следующий результат —
Hello there
Параметры процедуры
До сих пор вы видели процедуру без параметра. Но есть возможность передавать разные параметры при вызове процедуры. Эти переданные параметры могут быть захвачены внутри процедуры, и любые манипуляции с этими параметрами могут быть выполнены.
Процедура может принимать несколько параметров, разделенных запятой.
пример
Давайте внесем небольшие изменения в нашу процедуру sayHello . На этот раз требуется два параметра —
#!/home/euphoria-4.0b2/bin/eui procedure sayHello(sequence name,atom age) printf(1, "%s is %d years old.", {name, age}) end procedure -- Call above defined procedure. sayHello("zara", 8)
Это дает следующий результат —