Учебники

Эйфория — Процедуры

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

Как и любой другой продвинутый язык программирования, 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)

Это дает следующий результат —