1. 程式人生 > >Lua 環境搭建與語法基礎

Lua 環境搭建與語法基礎

故事是這樣的,目前我們的遊戲沒有做到程式碼級別的動態更新,所以很多時候維護一個bug都非常頭疼,新專案我準備使用lua來做動態更新,減少遊戲玩家因為維護bug不得不去更新一個比較大的包的流失。

經過一番的探索,發現目前市面上效率最高的是ulua ,所以決定使用ulua,之前有學習過一些lua方面的知識,這裡回顧一下,方便以後查閱,也是當回憶一下這裡面的知識。

首先下載一下lua的編輯器 這裡提供我使用的 下載地址, 下面是我的學習語法基礎的部分,方便自己以後回憶

--變數型別 所有的數值型都視為 double--
num_int = 10;
num_float = 10.1
num_double = 10.001
numOX = 0xff
print("num_int =", num_int, "num_float =",num_float, "num_double =",num_double, "numOX =",numOX );

--條件控制語句--
age=60;
sex ="female"
if age==40 and sex=="male" then
	print("你是40歲")
	elseif age>60 and sex~="female" then
	print("你是60歲以上的 男人");
	else
	print("你是其他型別");
end

--FOR迴圈語句--
sum=0;
for i=1,100 do
	sum = sum+i
end
print("for sum=",sum);

--FOR迴圈語句(帶步長的2,表示步長)--
sum=0;
for i=1, 10, 2 do 
	sum = sum+i;
end
print("for sum2 =", sum);

--while迴圈--
sum=0;
maxSum=100;
while(sum<=maxSum)do
	sum=sum+1;
end
print("sum_while=",sum);

--------------------------函式--------------------------

--函式-- (注意print裡面不是使用 + 而是使用 ,)
function fun(n)
	if n<2 then return 1 end
	return n;
end
print("fun return num =", fun(3));

-- 函式 實參多餘形參,則捨棄多餘的實參;若實參不足,則多餘的形參初始化為nil --
function funMutiPara(a, b)
	return a, b;
end

x, y, z = funMutiPara(20, 30, 40);
print("funMutiPara return num =", x," , ",y, " , ", z);


-- 函式(變長引數)--
function funValidate(...)
	return ...;
end
x, y, z = funValidate(20, 20, 20);
print("funValidate return num =", x," , ",y, " , ", z);


--------------------------Table--------------------------
mytable={name="pdw",age=18, handsome="帥嗎"}
print("修改前 mytable {name =", mytable.name, " , age =" ,mytable.age, " , handsome =", mytable.handsome);

mytable.handsome = "帥爆了"; -- 修改元素 --
mytable.address ="上沙野店"; -- 新加入元素進去 --
mytable.age = nil; -- 刪除元素(此元素講不存在table 裡面了) --
print("修改後 mytable {name =", mytable.name, " , age =" ,mytable.age, " , handsome =", mytable.handsome, " , address =", mytable.address);
--遍歷table--
for k, v in pairs(mytable)do 
	print(k, v);
end


--------------------------Array, 陣列下表從1開始的--------------------------
arr={10, 20, "hello lua"}
print("Array[1] = ", arr[1], ", Array[3] = ", arr[3], ", 陣列長度 =", #arr);

--訪問全域性變數 通過 _G 的方式--
print(_G.x);

--------------------------檔案--------------------------
--載入並語法.lua檔案,只執行一次--
require("語法");
--載入並執行對應的檔案--
dofile("語法.lua");
--載入檔案,延遲到file()在執行--
local file = loadfile("語法.lua");
print(file);
file();

預告: 明天開始學習ulua裡面的東西了~~