Euforia - Funções
As funções de euforia são como procedimentos, mas retornam um valor e podem ser usadas em uma expressão. Este capítulo explica como escrever suas próprias funções no Euphoria.
Definição de Função
Antes de usarmos uma função, precisamos defini-la. A maneira mais comum de definir uma função em Euphoria é usando ofunction palavra-chave, seguida por um nome de função exclusivo, uma lista de parâmetros (que pode estar vazia) e um bloco de instrução que termina com end functiondeclaração. A sintaxe básica é mostrada aqui -
function functionname(parameter-list)
statements
..........
return [Euphoria Object]
end function
Exemplo
Uma função simples chamada sayHello que não leva parâmetros é definida aqui -
function sayHello()
puts(1, "Hello there")
return 1
end function
Chamando uma função
Para invocar uma função em algum lugar posteriormente no script, você simplesmente precisa escrever o nome dessa função da seguinte maneira -
#!/home/euphoria-4.0b2/bin/eui
function sayHello()
puts(1, "Hello there")
return 1
end function
-- Call above defined function.
sayHello()
Isso produz o seguinte resultado -
Hello there
Parâmetros de Função
Até agora vimos a função sem parâmetros. Mas existe uma facilidade para passar parâmetros diferentes ao chamar uma função. Esses parâmetros passados podem ser capturados dentro da função e qualquer manipulação pode ser feita sobre esses parâmetros.
Uma função pode ter vários parâmetros separados por vírgula.
Exemplo
Vamos fazer uma pequena modificação em nossa função sayHello . Desta vez, são necessários dois 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)
Isso produz o seguinte resultado -
zara is 8 years old.
A declaração de retorno
Uma função Euphoria deve ter uma declaração de retorno antes da declaração de fechamentoend function. Qualquer objeto Euphoria pode ser retornado. Você pode, na verdade, ter vários valores de retorno, retornando uma sequência de objetos. Por exemplo
return {x_pos, y_pos}
Se você não tem nada para retornar, simplesmente retorne 1 ou 0. O valor de retorno 1 indica sucesso e 0 indica falha