Euforia - Funzioni

Le funzioni di euforia sono proprio come le procedure, ma restituiscono un valore e possono essere utilizzate in un'espressione. Questo capitolo spiega come scrivere le proprie funzioni in Euphoria.

Definizione di funzione

Prima di usare una funzione, dobbiamo definirla. Il modo più comune per definire una funzione in Euphoria è usare ilfunction parola chiave, seguita da un nome di funzione univoco, un elenco di parametri (che potrebbe essere vuoto) e un blocco di istruzioni che termina con end functiondichiarazione. La sintassi di base è mostrata qui -

function functionname(parameter-list)

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

end function

Esempio

Una semplice funzione chiamata sayHello che non accetta parametri è definita qui -

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

Chiamare una funzione

Per richiamare una funzione da qualche parte in un secondo momento nello script, dovresti semplicemente scrivere il nome di quella funzione come segue:

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

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

-- Call above defined function.
sayHello()

Questo produce il seguente risultato:

Hello there

Parametri di funzione

Finora abbiamo visto la funzione senza parametri. Ma c'è la possibilità di passare parametri diversi durante la chiamata a una funzione. Questi parametri passati possono essere catturati all'interno della funzione e qualsiasi manipolazione può essere eseguita su quei parametri.

Una funzione può accettare più parametri separati da virgola.

Esempio

Facciamo una piccola modifica nella nostra funzione sayHello . Questa volta ci vogliono due parametri:

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

Questo produce il seguente risultato:

zara is 8 years old.

La dichiarazione di ritorno

Una funzione Euphoria deve avere un'istruzione return prima dell'istruzione di chiusuraend function. Qualsiasi oggetto Euphoria può essere restituito. È possibile, in effetti, avere più valori restituiti, restituendo una sequenza di oggetti. Per esempio

return {x_pos, y_pos}

Se non hai nulla da restituire, restituisci semplicemente 1 o 0. Il valore di ritorno 1 indica successo e 0 indica fallimento