Euphoria 函式


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.

return 語句:

Euphoria函式必須有 return語句在函式結果之前。任何 Euphoria 的物件可以被退回。可以有多個返回值,返回的一系列物件。例如

return {x_pos, y_pos}

如果什麼都沒有返回,那麼簡單地返回1或0。這裡1表示成功的條件和0可以表示失敗條件。