函式的宣告
用以下的語句來產生乙個函式:
function hello()
print("hello azeroth!")
end
如果需要引數, 可以在函式名後的括號中加入引數列表.
function hello(name)
print("hello " .. name)
end
特別的, lua支援不確定個數的引數列表:
(參考: paul schuytema和mark manyen的game development with lua)
function listout(...)
if arg.n > 0 then
for indx = 1, arg.n do
local temp = string.format("%s%d", "argument ", indx, ":")
print(temp, arg[indx])
endelse
print("no arguments.")
endend
附註: =運算子比較的, 是兩個函式是否指向實際的同乙個函式, 而非兩函式的內容是否相等
> hello = function() print("hello azeroth!") end
> hello2 = hello
> print(hello2 == hello)
true
> hello2 = function() print("hello azeroth!") end
> print(hello2 == hello)
false
if語句
和一部分script language類似, 必須以end結尾.
if (num==7) then
print("you found the magic number!")
end
如果需要串接else if, 應使用elseif語句, 並在最後用乙個end結尾.
function greeting(name)
if (type(name) == "string") then
print("hello " .. name)
elseif (type(name) == "nil") then
print("hello friend")
else
error("invalid name was entered")
endend
迴圈語句
for語句的通用格式如下:
for indx = start, end, (step) do
-- statements
end
step在這裡表示每次indx的增量, 預設為1.
與其他語言類似的repeat和while語句的格式如下:
repeat
-- statements
until
以及while do
-- body
end
在迴圈中修改迴圈的條件變數, 不會影響迴圈的進行次數; 這是在進入迴圈語句前已經計算完畢的.
參考下面的語句:
for i=1, upper do
upper = upper + 1
end
這個迴圈不會成為死迴圈.
tag標籤:
lua
MYSQL常用函式(控制流函式)
mysql有4個函式是用來進行條件操作的,這些函式可以實現sql的條件邏輯,允許開發者將一些應用程式業務邏輯轉換到資料庫後台。mysql控制流函式 case when test1 then result1 else default end如果testn是真,則返回resultn,否則返回defaul...
mysql流控制 mysql 控制流函式
ifnull expr1,expr2 如果 expr1 為非 null 的,ifnull 返回 expr1,否則返回 expr2。ifnull 返回乙個數字或字串值 mysql select ifnull 1,0 1 mysql select ifnull null,10 10 如果 expr1 e...
Lua基礎學習 Lua函式
函式主要用途 1 是作為呼叫語句使用。2 作為賦值語句的表示式使用。語法 區域性 全域性 function fun name 引數列表 函式體endfunction 定義函式關鍵字注意 1 在使用 lua 函式 變數時一定要先定義函式 變數 2 lua 函式不支援引數預設值,可以使用 or 解決。如...