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