啟航Lua之路

臣有一事不知當不當講發表於2018-04-07


變數(全域性變數/區域性變數)

 Lua支援全域性變數和區域性變數的概念

全域性變數:直接定義變數名,並賦值

區域性變數:使用local關鍵字進行定義。


變數命名規則:遵循C/C++語言中的變數命名規則

                       避免定義下劃線開頭並跟著大寫字母的變數名

                       Lua關鍵字不能用作變數名


Lua中的變數使用:

可以在一行中定義多個變數,儘量在定義變數時賦值

定義變數時不需要宣告型別,變數具有動態型別

未賦值的變數,其預設值為nil(空值)


變數使用的注意事項:

區域性變數的作用域僅限於塊中(if、 else、while、 do 、 function )

在Lua中儘可能使用區域性變數(訪問速度快)(在Lua直譯器中需要查詢全域性變數)

當不再使用全域性變數時,用nil進行賦值

注意:

do

end 

 相當於

{

}

a, b = 1, 2, 3;
foo = "global"; 

do
	local x, y = a, b;
	local foo = foo;
	
	print("foo = ", foo);
	
	foo = "local";
	
	print("foo = ", foo);
	
	print("x = ", x);
	print("y = ", y);
	
	print("a = ", a);
	print("b = ", b);
end

print("\n");

print("foo = ", foo);
	
print("x = ", x);
print("y = ", y);
	
print("a = ", a);
print("b = ", b);
	
a, b, foo = nil;

執行結果如下:



程式塊(chunk)

Lua直譯器以程式塊的方式處理Lua程式碼

每一段可執行的Lua程式碼都可以成為程式碼塊

一個程式塊由一條或者多條Lua語句構成:

簡單的程式塊:一條語句

複雜的程式塊:多條不同語句及函式定義構成



註釋(單行註釋/多行註釋)

單行註釋: --

多行註釋: --[[ ......]]

解註釋操作:

enable code segment with a '-' //新增“-後即可恢復註釋效果

多行註釋技巧:

--[[
print("willwilling")
--]]
a, b = 1, 2, 3;
foo = "global"; 

--[[do  //enable code segment with a '-' //新增“-後即可恢復註釋效果
	local x, y = a, b;
	local foo = foo;
	
	print("foo = ", foo);
	
	foo = "local";
	
	print("foo = ", foo);
	
	print("x = ", x);
	print("y = ", y);
	
	print("a = ", a);
	print("b = ", b);
end
--]]

print("\n");

print("foo = ", foo);
	
print("x = ", x);
print("y = ", y);
	
print("a = ", a);
print("b = ", b);
	
a, b, foo = nil;

執行結果如下:


小結:

Lua的變數名遵循C/C++語言變數名的規則

Lua可以在一行定義多個變數,且不需要宣告型別

Lua程式中儘量使用區域性變數,效率更高

Lua程式塊指的是一條或者多條合法的可執行語句

Lua支援單行註釋和多行註釋





相關文章