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語言遊戲開發
- lua學習: lua及函數語言程式設計語言函數程式設計
- 熱更新語言--lua學習筆記筆記
- Lua 學習筆記(上)筆記
- C#與Lua語言學習對比一C#
- 0、Lua語言理解
- redis學習(八) Lua語法Redis
- Lua學習筆記--物件導向(三)筆記物件
- lua 學習總結
- Lua學習筆記筆記
- 透過例子學習Lua(2)---Lua流程控制(轉)
- 學習Lua的意義
- 從sysbench中學習Lua
- Lua學習筆記(一)筆記
- Redis基礎知識(學習筆記21--Lua 指令碼語言)Redis筆記指令碼
- 透過例子學習Lua(3)----Lua資料結構(轉)資料結構
- Lua 語言 15 分鐘快速入門
- Redis基礎知識(學習筆記21--Lua 指令碼語言2)Redis筆記指令碼
- 透過例子學習Lua(5)--Lua與C的互動(轉)
- Lua學習(二)物件導向物件
- Lua5.3學習筆記筆記
- lua課程學習筆記筆記
- lua~基本語法
- 《Lua-in-ConTeXt》09:學一點 LuaContext
- lua學習之入門(二)----基礎語法1
- 透過例子學習Lua(6)--C/C++中用Lua函式(轉)C++函式
- 在瀏覽器中使用Lua語言:Fengari瀏覽器
- 0基礎lua學習(十四)封裝封裝
- 【程式語言】C/C++中如何使用Lua指令碼C++指令碼
- Redis學習筆記(三)使用Lua指令碼實現分散式鎖Redis筆記指令碼分散式
- redis原始碼學習之lua執行原理Redis原始碼
- Lua語法基礎教程(上篇)
- lua快速入門~在js基礎上,知道Lua 和 Js 的不同即可JS
- Lua 特性
- Lua學習筆記--迭代器和協程(二)筆記
- 小需求推動新語言快速學習:nginx lua 根據 user_agent 顯示不同的頁面Nginx
- lua~IDEA中除錯lua指令碼Idea除錯指令碼
- 【Lua】VSCode 搭建 Lua 開發環境VSCode開發環境