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