Euforia - funkcje
Funkcje euforii są podobne do procedur, ale zwracają wartość i mogą być używane w wyrażeniu. W tym rozdziale wyjaśniono, jak pisać własne funkcje w Euphoria.
Definicja funkcji
Zanim użyjemy funkcji, musimy ją zdefiniować. Najczęstszym sposobem definiowania funkcji w Euphorii jest użycie rozszerzeniafunction słowo kluczowe, po którym następuje unikalna nazwa funkcji, lista parametrów (która może być pusta) i blok instrukcji kończący się na end functionkomunikat. Poniżej przedstawiono podstawową składnię -
function functionname(parameter-list)
statements
..........
return [Euphoria Object]
end function
Przykład
W tym miejscu zdefiniowano prostą funkcję o nazwie sayHello, która nie przyjmuje parametrów -
function sayHello()
puts(1, "Hello there")
return 1
end function
Wywołanie funkcji
Aby wywołać funkcję gdzieś później w skrypcie, wystarczyłoby napisać nazwę tej funkcji w następujący sposób -
#!/home/euphoria-4.0b2/bin/eui
function sayHello()
puts(1, "Hello there")
return 1
end function
-- Call above defined function.
sayHello()
Daje to następujący wynik -
Hello there
Parametry funkcji
Do tej pory widzieliśmy funkcję bez parametrów. Istnieje jednak możliwość przekazywania różnych parametrów podczas wywoływania funkcji. Te przekazane parametry można przechwycić wewnątrz funkcji i można na nich wykonać dowolną manipulację.
Funkcja może przyjmować wiele parametrów oddzielonych przecinkami.
Przykład
Zróbmy trochę modyfikacji w naszej funkcji sayHello . Tym razem wymaga dwóch parametrów -
#!/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)
Daje to następujący wynik -
zara is 8 years old.
Zwrotny komunikat
Funkcja Euphoria musi mieć instrukcję return przed instrukcją zamykającąend function. Każdy obiekt Euphoria może zostać zwrócony. W efekcie możesz mieć wiele zwracanych wartości, zwracając sekwencję obiektów. Na przykład
return {x_pos, y_pos}
Jeśli nie masz nic do zwrócenia, po prostu zwróć 1 lub 0. Zwracana wartość 1 oznacza sukces, a 0 oznacza niepowodzenie