Euphoria - 函式



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 函式必須在結束語句 **end function** 之前包含 *return* 語句。任何 Euphoria 物件都可以被返回。實際上,您可以透過返回一系列物件來擁有多個返回值。例如:

return {x_pos, y_pos}

如果您沒有要返回的內容,則只需返回 1 或 0。返回值 1 表示成功,0 表示失敗。

廣告
© . All rights reserved.