Lua遊戲開發(三)---Lua語言學習(上)
1.全域性變數和區域性變數
require("app.senes.other") --呼叫app\senes目錄下other.lua檔案,可以使用other.lua檔案裡的資源
a = 3 --全域性變數,可供其他lua檔案呼叫
local b = "hello world" --a.lua檔案的全域性變數,不可供其它lua檔案呼叫,類似於c裡的static變數
function main()
print(a) --3
funa(a)
print(a) --9
c = 4 --全域性變數,同a
do
local a = 2 --區域性變數
print(a) --2
end
print(a) --9
end
function funa()
a = 9
end
2.資料型別判斷及型別轉換a = 3
local b = "hello world"
function main()
c = false
print(type(a)..","..type(b)..","..type(c)..","..type(funa)) --number,string,boolean,function
local d = "4"
local e = "5"
print(d+e) --9
print(a+d) --7
print(a..d) --34 ".."連結符號,可以連線number,也可以連線string
end
function funa()
a = 9
end
3.函式:可以像其他資料型別number,string一樣賦值傳參。
function main()
funca() --funca
funcb(1) --funcb
print(funcc(3,4)) --funcc 7
a,b,c = funcd() --a=8,b=10,c=12
a,b,c = funcd(nil,1) --a=4,b=10,c=8
end
--無引數無返回值
function funca()
print("funca")
end
--有引數無返回值
function funcb(a)
print("funcb"..a)
end
--有引數有返回值
function funcc(a,b)
print("funcc"..a..b)
return a+b
end
--引數預設值多返回值
function funcd(a,b,c)
a = a or 3
b = b or 5
c = c or 7
return a+b,a+c,b+c
end
--不定引數
function funce(...)
local num = select("#",...) --num為傳入的引數的個數
local a,b,c = ... --a,b,c為傳入的前三個引數,如果沒有三個,則為nil
--將傳入的不定引數當作陣列來處理,v即挨個得到的入參
for k,v inpair({...}) do
print(k,v)
end
end
4.運算子function main()
a,b = 7,2 --多值賦值
print(a/b) --3.5
print(math.floor(a/b)) --3 向下取整
print(math.ceil(a/b)) --4 向上取整
print(math.round(a/b)) --4 四捨五入
print(7%2) --1
print(b^3) --8 冪
c = "7"
print(a==b) --false
print(a~=b) --true
print(a>c) --exception 型別不同,異常
print(a==c) --false
print(a~=c) --true
d = false
print(not d) --true
e = (a>b) and true or false --true 三目運算子
s = {3,5,nil,8,9}
print(#s) --5 獲取個數
a,b = b,a --交換值
end
5.分支迴圈語句
function main()
a,b,c = 1,2,10
if a>b then
print("a>b")
elseif a<b then
print("a<b")
else
print("a=b")
end
while a<c do
print("a="..a)
a = a+1 --a++, a+=1這些寫法lua不支援
end
repeat
print("b="..b)
b = b+1
until b>c
for i = 1,funca,2 do --從1到10,步長為2,不寫的話步長預設為1; funca在這裡只會呼叫一次
print(i)
if i == 3 then
break
end
--lua沒有continue關鍵字,會有歧義,可以用repeat...until替代
repeat
if i == 3 then
break
end
until true
end
end
function funca()
print("call funca")
return 10
end
相關文章
- 熱更新語言--lua學習筆記筆記
- Lua 學習筆記(上)筆記
- C#與Lua語言學習對比一C#
- 0、Lua語言理解
- redis學習(八) Lua語法Redis
- 【Lua】VSCode 搭建 Lua 開發環境VSCode開發環境
- lua 學習總結
- [Lua遊戲AI開發指南] 筆記零 - 框架搭建遊戲AI筆記框架
- Redis基礎知識(學習筆記21--Lua 指令碼語言)Redis筆記指令碼
- 學習Lua的意義
- Lua學習記錄 20201027
- 《Lua-in-ConTeXt》09:學一點 LuaContext
- Redis基礎知識(學習筆記21--Lua 指令碼語言2)Redis筆記指令碼
- lua~基本語法
- 在瀏覽器中使用Lua語言:Fengari瀏覽器
- Lua學習(二)物件導向物件
- lua課程學習筆記筆記
- lua 開發環境搭建開發環境
- 使用Lua語言實現基本影像識別
- Redis學習筆記(三)使用Lua指令碼實現分散式鎖Redis筆記指令碼分散式
- Lua語法基礎教程(上篇)
- redis原始碼學習之lua執行原理Redis原始碼
- lua~IDEA中除錯lua指令碼Idea除錯指令碼
- 安裝Nginx+Lua開發環境Nginx開發環境
- Hello Lua
- Lua 特性
- lua快速入門~在js基礎上,知道Lua 和 Js 的不同即可JS
- go語言遊戲服務端開發(三)——服務機制Go遊戲服務端
- C語言0基礎入門遊戲輔助開發—學習筆記01C語言遊戲筆記
- lua千分位上加分號
- 簡單介紹Lua中三種迴圈語句的使用
- lua unpack 陷阱
- Android 與 LuaAndroid
- Lua table(表)
- Lua math庫
- Lua迭代器
- Lua乾貨
- lua語法-程式塊(chunk)與註釋
- apisix~lua外掛開發與外掛註冊API