1. 程式人生 > >lua中的全域性變數與區域性變數與塊

lua中的全域性變數與區域性變數與塊



1.全域性變數:

全域性變數不需要宣告,只需要直接給賦值即可。當然刪除一個全域性變數喜歡只需要將他賦值為nil即可。換句話說如果存在一個全域性變數必然具有一個非nil值。

2.區域性變數

   用local宣告,其作用域僅限於宣告他們的那個塊。這個塊可以是區域性控制結構,function以及chunk1。

 例子:

chunk1:

 

        需要注意的是y是全域性變數,但由於宣告在函式中函式體未執行的話,y仍然為nil 。如果先執行再列印y=10

 當 另一個chunk2中require該chunk1時:

chunk2:

注意一下幾點:1.require只會執行一次(dofile會每次執行,loadfile只加載不執行)

2.可以訪問到的變數:x=10,m=nil(local訪問不到) y=nil(無論函式提不提前執行都為nil,我的理解是y在function程式碼塊裡的全域性變數,能夠在該chunk裡訪問到,卻不能在另一個外部訪問。而x為該chunk裡的全域性變數,所以可在外部訪問到。)

三,當執行chunk1中的testPrint()函式時是會執行smallfunction方法。但如果把samllfunction放在下面testPrint方法下面:這裡可以把函式當成一個變數就容易理解了。全域性變數不需要宣告。而區域性變數需要加個local(暫時這麼理解)