第一版是為 Lua 5.0 所寫。雖然在後續版本中仍然有很大的相關性,但有一些差異。
第四版針對 Lua 5.3,可以在 Amazon 和其他書店買到。
購買這本書,您也可以協助 支援 Lua 專案。
![]() |
用 Lua 程式設計 | ![]() |
第一部。語言 第 4 章。陳述式 |
指派是變數或表格欄位值變更的基本方式
a = "hello" .. "world" t.n = t.n + 1
Lua 允許多重指派,其中一個值清單會在一個步驟中指派給一個變數清單。兩個清單中的元素都以逗號分隔。例如,在指派中
a, b = 10, 2*x變數
a
會取得值 10,而 b
會取得 2*x
。
在多重指派中,Lua 會先評估所有值,然後才會執行指派。因此,我們可以使用多重指派來交換兩個值,如下所示
x, y = y, x -- swap `x' for `y' a[i], a[j] = a[j], a[i] -- swap `a[i]' for `a[j]'
Lua 始終會調整值數量以符合變數數量:當值清單比變數清單短時,額外的變數會收到 nil 作為其值;當值清單較長時,額外的值會被靜默捨棄
a, b, c = 0, 1 print(a,b,c) --> 0 1 nil a, b = a+1, b+1, b+2 -- value of b+2 is ignored print(a,b) --> 1 2 a, b, c = 0 print(a,b,c) --> 0 nil nil上述範例中的最後一個指派顯示了一個常見的錯誤。若要初始化一組變數,您必須為每個變數提供一個值
a, b, c = 0, 0, 0 print(a,b,c) --> 0 0 0
實際上,大多數先前的範例都有些人工。我很少使用多重指派,只是為了在單一行中撰寫多個指派。但我們通常真的需要多重指派。我們已經看過一個範例,用於交換兩個值。更常見的用法是收集函式呼叫的多個回傳值。如我們稍後將詳細討論,函式呼叫可以回傳多個值。在這種情況下,單一表達式可以提供多個變數的值。例如,在指派中
a, b = f()
f()
回傳兩個結果:a
取得第一個,而 b
取得第二個。
版權所有 © 2003–2004 Roberto Ierusalimschy。保留所有權利。 | ![]() |