Euphoria基本語法


Euphoria語言和 Perl,C 和 Java 有許多相似之處。但是,也有一些明確的語言之間的差異。本章的目的是迅速讓你了解 Euphoria 的語法。.

本教學假定您正在使用Linux平台,所有的例子已經寫。但我沒有觀察到任何 Linux 和 WIN32程式語法上的差異,所以在Win32中,你可以按照相同的步驟。

第一個Euphoria 程式:

讓我們寫一個簡單的 Euphoria 指令碼程式。因此,把下面的原始碼一個test.ex檔案,並儲存它。

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

puts(1, "Hello, Euphoria!\n")

假設,Euphoria 的直譯器是 /home/euphoria-4.0b2/bin/ 目錄中可用。現在嘗試執行此程式如下:

$ chmod +x test.ex    # This is to make file executable
$ ./test.ex

這將產生以下結果:

Hello, Euphoria!

該指令碼使用了Euphoria 一個內建函式puts(),它接受兩個引數。第一個引數表示檔案名或裝置號碼,第二個引數表示要列印的字串。在這裡,1表示標準輸出裝置。 

Euphoria 識別符號:

Euphoria 識別符號是用來識別一個變數,函式,類,模組,或其它物體的名稱。識別符號以字母A到Z或a到z,然後遵循字母,數位或下劃線開始。

Euphoria 不允許標點符號,如 @, $, and % 以內識別符號.

Euphoria 是區分大小寫的程式設計語言。因此Manpower 和manpower 是兩個不同的識別符號。有效識別符號的例子:

  • n
  • color26
  • ShellSort
  • quick_sort
  • a_very_long_indentifier

保留字:

下面的列表顯示Euphoria 中的保留字。這些保留字不能用作常數或變數,或任何其他識別符號名稱。

關鍵詞只包含小寫字母。

and exit override
as export procedure
break fallthru public
by for retry
case function return
constant global routine
continue goto switch
do if then
else ifdef to
elsedef include type
elsif label until
elsifdef loop while
end namespace with
entry not without
enum or xor

表示式:

Euphoria 可以讓你形成表示式的計算結果。然而,在Euphoria 可以對整個資料序列進行計算一個表示式。

可以處理一個就像將一個單一的數位序列。傳遞給一個子程式,它可以被複製或計算時作為一個單元。例如:

{1,2,3} + 5

是一種表達,增加了序列{1,2,3}和原子5得到結果序列{6,7,8}。在隨後的章節中會學到序列。

程式碼塊:

第一告誡程式員之一時遇到學習 Euphoria 是沒有括號來表示程式碼塊的過程和函式定義或流量控制。程式碼塊是由相關的關鍵字表示。

下面的例子是 if...then...end if 塊:

if condition then
   code block comes here
end if

多行語句:

Euphoria 報表通常一個新行結束。但是Euphoria 允許在多行寫一個單獨的語句。例如:

total = item_one + 
        item_two + 
        item_three

跳脫字元:

使用反斜槓跳脫字元輸入。例如:

下表是跳脫或反斜線符號可以表示非列印字元列表。

反斜線符號 描述
\n Newline
\r Carriage return
\t Tab
\\ Backslash
\" Double quote
\' Single quote

Euphoria註釋:

被編譯器忽略任何注釋和執行速度沒有影響。明智的做法是在你的程式中使用更多的注釋,使其更具可讀性。

注釋文字有三種形式:

  1. Euphoria 注釋是由兩個破折號開始,延伸到當前行的末尾。

  2. 多行格式註釋內保持 /* ...*/,即使發生在另一行內。

  3. 在第一行程式可以使用一種特殊的注釋開頭的兩個字元的序列 #!.

範例:

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

-- First comment
puts(1, "Hello, Euphoria!\n") -- second comment

/* This is a comment which extends over a number
of text lines and has no impact on the program
*/

這將產生以下結果:

Hello, Euphoria!

註: 在第一行頭(只有)程式可以使用一種特殊的注釋開始用#! ,此通知檔案在Linux shell 使用Euphoria 直譯器執行。