Euphoria - 過程



過程是一組可重用的程式碼,可以在程式中的任何位置呼叫。這消除了重複編寫相同程式碼的需要。這有助於程式設計師編寫模組化程式碼。

與任何其他高階程式語言一樣,Euphoria 也支援編寫使用過程的模組化程式碼所需的所有功能。

您可能在前面的章節中看到過諸如 printf()length() 之類的過程。我們一次又一次地使用這些過程,但它們只在 Euphoria 核心程式碼中編寫過一次。

Euphoria 也允許您編寫自己的過程。本節說明如何在 Euphoria 中編寫自己的過程。

過程定義

在使用過程之前,您需要定義它。在 Euphoria 中定義過程最常見的方法是使用 procedure 關鍵字,後跟唯一的過程名稱、引數列表(可能為空)以及以 end procedure 語句結尾的語句塊。基本語法如下所示:

procedure procedurename(parameter-list)

   statements
   ..........

end procedure

示例

這裡定義了一個名為 sayHello 的簡單過程,它不帶任何引數:

procedure  sayHello()
   puts(1, "Hello there")
end procedure

呼叫過程

要在指令碼中的稍後某個位置呼叫過程,您只需編寫該過程的名稱,如下所示:

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

procedure  sayHello()
   puts(1, "Hello there")
end procedure 

-- Call above defined procedure.
sayHello()

這會產生以下結果:

Hello there

過程引數

到目前為止,您已經看到了沒有引數的過程。但是,在呼叫過程時,有一種傳遞不同引數的機制。這些傳遞的引數可以在過程中捕獲,並且可以對這些引數進行任何操作。

過程可以接受用逗號分隔的多個引數。

示例

讓我們對 sayHello 過程進行一些修改。這次它將接受兩個引數:

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

procedure sayHello(sequence name,atom  age)
   printf(1, "%s is %d years old.", {name, age})
end procedure

-- Call above defined procedure.
sayHello("zara", 8)

這會產生以下結果:

zara is 8 years old.
廣告

© . All rights reserved.