我是Lua初學者 2

2021-04-01 19:53:31 字數 1795 閱讀 1572

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一下,把相關的引數填一下就可以了,這是最開始的封...