syntax
1、if else用法比較簡單, 類似於c語言, 不過此處需要注意的是整個if只需要乙個end,
哪怕用了多個elseif, 也是乙個end.
例如if op == "+" then
r = a + b
elseif op == "-" then
r = a - b
elseif op == "*" then
r = a*b
elseif op == "/" then
r = a/b
else
error("invalid operation")
endsystem
1、lua對table占用記憶體的處理是自動的, 如下面這段**
a = {}
a["x"] = 10
b = a -- `b' refers to the same table as `a'
print(b["x"]) --> 10
b["x"] = 20
print(a["x"]) --> 20
a = nil -- now only `b' still refers to the table
b = nil -- now there are no references left to the table
b和a都指向相同的table, 只占用一塊記憶體, 當執行到a = nil時, b仍然指向table,
而當執行到b=nil時, 因為沒有指向table的變數了, 所以lua會自動釋放table所佔記憶體
function
1、不定引數
-- functions can take a
-- variable number of
-- arguments.
function funky_print (...)
for i=1, arg.n do
print("funky: " .. arg)
end
end
funky_print("one", "two")
執行結果
funky: one
funky: two
程式說明
* 如果以...為引數, 則表示引數的數量不定.
* 引數將會自動儲存到乙個叫arg的table中.
* arg為local變數,在乙個function內
* arg.n中存放引數的個數. arg加下標就可以遍歷所有的引數.
2、把lua變成類似xml的資料描述語言
function contact(t)
-- add the contact 『t』, which is
-- stored as a table, to a database
endcontact
contact
程式說明
* 把function和table結合, 可以使lua成為一種類似xml的資料描述語言
* e09中contact, 是一種函式的呼叫方法, 不要弄混了
* [[...]]是表示多行字串的方法
* 當使用c api時此種方式的優勢更明顯, 其中contact部分可以另外存成一配置檔案
3、lua的函式可以有多個引數, 也可以有多個返回值, 這都是由棧(stack)實現的.
需要呼叫乙個函式時, 就把這個函式壓入棧, 然後順序壓入所有引數, 然後用
lua_call()呼叫這個函式. 函式返回後, 返回值也是存放在棧中. 這個過程和
彙編執行函式呼叫的過程是一樣的.
(我是初學者)html求教
先看兩段 一function divmove ss speed imgobj.style.left ss px 變換 if countimg 100 else countimg if countimg 200 20毫秒後再次執行該函式 x window.settimeout divmove 20 二...
Lua 初學者隨筆 一
1.關於return function test a,b print hello return print world end call the function test 1,2 output hello world 奇怪之處 lua關於return語句放置的位置 return用來從函式返回結果,...
我是初學者 自己封裝元件
隨著學習的深入,開始接觸容器,開始使用jframe,jlable等等來顯示相應的內容。但是每次需要的時候,就要設定相應元件的大小位置,並新增到jframe中,相關 需要重複寫,所以為了方便,就會自己寫個帶引數的構造器,這樣需要新增的時候,就只需要new一下,把相關的引數填一下就可以了,這是最開始的封...