筆記 Lua基礎 函式 控制流

2021-05-22 06:24:50 字數 1718 閱讀 2065

函式的宣告

用以下的語句來產生乙個函式:

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 解決。如...