Euforia - Funciones

Las funciones de Euphoria son como procedimientos, pero devuelven un valor y se pueden utilizar en una expresión. Este capítulo explica cómo escribir sus propias funciones en Euphoria.

Definición de función

Antes de usar una función, necesitamos definirla. La forma más común de definir una función en Euphoria es utilizando elfunction palabra clave, seguida de un nombre de función único, una lista de parámetros (que pueden estar vacíos) y un bloque de instrucciones que termina con end functiondeclaración. La sintaxis básica se muestra aquí:

function functionname(parameter-list)

   statements
   ..........
   return [Euphoria Object]

end function

Ejemplo

Aquí se define una función simple llamada sayHello que no toma parámetros:

function sayHello()
   puts(1, "Hello there")
   return 1
end function

Llamar a una función

Para invocar una función en algún lugar más adelante en el script, simplemente necesitaría escribir el nombre de esa función de la siguiente manera:

#!/home/euphoria-4.0b2/bin/eui

function sayHello()
   puts(1, "Hello there")
   return 1
end function

-- Call above defined function.
sayHello()

Esto produce el siguiente resultado:

Hello there

Parámetros de función

Hasta ahora hemos visto la función sin parámetros. Pero existe la posibilidad de pasar diferentes parámetros al llamar a una función. Estos parámetros pasados ​​se pueden capturar dentro de la función y cualquier manipulación se puede realizar sobre esos parámetros.

Una función puede tomar varios parámetros separados por comas.

Ejemplo

Hagamos una pequeña modificación en nuestra función sayHello . Esta vez se necesitan dos parámetros:

#!/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)

Esto produce el siguiente resultado:

zara is 8 years old.

La declaración de devolución

Una función Euphoria debe tener una declaración de retorno antes de la declaración de cierreend function. Se puede devolver cualquier objeto Euphoria. En efecto, puede tener múltiples valores de retorno devolviendo una secuencia de objetos. Por ejemplo

return {x_pos, y_pos}

Si no tiene nada que devolver, simplemente devuelva 1 o 0. El valor devuelto 1 indica éxito y 0 indica fracaso