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