第一版是為 Lua 5.0 編寫的。雖然對於後續版本來說仍然相當相關,但有一些差異。
第四版針對 Lua 5.3,可在 Amazon 和其他書店買到。
購買本書,您也協助 支援 Lua 專案


3.2 – 關係運算子

Lua 提供下列關係運算子
    <   >   <=  >=  ==  ~=
所有這些運算子總是產生 truefalse

運算子 == 測試相等性;運算子 ~= 是相等性的否定。我們可以將這兩個運算子套用於任何兩個值。如果值有不同的類型,Lua 會將它們視為不同的值。否則,Lua 會根據它們的類型來比較它們。特別是,nil 僅等於它自己。

Lua 透過參照來比較表格、使用者資料和函式,也就是說,只有當兩個此類值是同一個物件時,才會被視為相等。例如,在執行下列程式碼之後

    a = {}; a.x = 1; a.y = 0
    b = {}; b.x = 1; b.y = 0
    c = a
您會得到 a==ca~=b

我們只能將順序運算子套用於兩個數字或兩個字串。Lua 以通常的方式來比較數字。Lua 以字母順序來比較字串,而字母順序會遵循為 Lua 設定的區域設定。例如,在歐洲拉丁文-1 區域設定中,我們有 "acai" < "açaí" < "acorde"。其他類型只能比較相等性(和不相等性)。

在比較不同類型的值時,您必須小心:請記住 "0"==0 是 false。此外,2<15 顯然為 true,但 "2"<"15" 是 false(字母順序!)。為避免產生不一致的結果,當您在順序比較中混合字串和數字時(例如 2<"15"),Lua 會引發錯誤。