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