Euphoria 函式和過程是一樣的,但它們返回一個值,並且可以在表示式中使用。
本節將解釋你如何在Euphoria 中編寫自己的函式。
在我們使用一個函式之前,我們需要定義這個函式。最常用的方法是使用function關鍵字定義一個函式,在興奮,其次是獨特的函式名,引數列表(可能為空),end function 的宣告語句塊結束。基本語法如下所示:
function functionname(parameter-list) statements .......... return [Euphoria Object] end function |
一個簡單的 sayHello函式不帶引數在這裡被定義:
function sayHello() puts(1, "Hello there") return 1 end function |
以後在指令碼中要呼叫一個函式的地方,簡單需要編寫的名稱,函式如下:
#!/home/euphoria-4.0b2/bin/eui function sayHello() puts(1, "Hello there") return 1 end function -- Call above defined function. sayHello() |
這將產生以下結果:
Hello there |
到現在我們已經看到函式沒有引數。但是有一個設施,傳遞不同的引數,同時呼叫一個函式。這些傳遞的引數可以被捕獲在函式內部,並可以對這些引數進行任何操作。
函式可以用逗號分隔的多個引數。
讓我們做一點修改我們的SayHello函式。這一次,它將帶有兩個引數:
#!/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) |
這將產生以下結果:
zara is 8 years old. |
Euphoria函式必須有 return語句在函式結果之前。任何 Euphoria 的物件可以被退回。可以有多個返回值,返回的一系列物件。例如
return {x_pos, y_pos} |
如果什麼都沒有返回,那麼簡單地返回1或0。這裡1表示成功的條件和0可以表示失敗條件。