亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

lua local 變量和表

發布時間:2020-10-02 15:02:17 來源:網絡 閱讀:2324 作者:bosswanghai 欄目:開發技術

local是我們在lua編程里面經常寫的,經常寫的方式為local foo = foo。lua對local的處理有加速訪問的效果,并且將變量定義為局部變量也是一種好的編程習慣。


lua對變量和表的local化處理的方式是不同的

======example======

foo = {}

foo.a =1


do

local foo = foo

foo.a =2

print(foo, _G["foo"])

print(foo.a)

print(_G["foo"].a)

end


print(_G["foo"].a)


print("----next case----")

var = 1

do

local var = var

var = 2

print(var)

print(_G["var"])

end


print(_G["var"])


執行結果:

table: 0x7febca407920 table: 0x7febca407920

2

2

2

----next case----

2

1

1

=============

通過代碼結果可以看到,local表=全局表,是同一個表,這主要是由于lua的表機制是匿名的,相當于函數的指針,local foo = foo,即使本地foo沒有在全局_G注冊,還是引用的是同一個表。當沒有變量指向表的時候,垃圾回收器會銷毀這個匿名表。

而local變量則是創建一個新的變量,遵守子作用域覆蓋父作用域的規則。

特別是對于require "modname"中的模塊,在編寫的時候,不能直接使用全局變量,因為是同一個變會保存其變量狀態影響其他使用。最好的處理方式就是盡可能的依據入參,函數內部定義local 變量等來編寫代碼。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

准格尔旗| 上高县| 富裕县| 东台市| 芜湖市| 炎陵县| 慈利县| 美姑县| 柘城县| 永嘉县| 梁河县| 尉氏县| 莎车县| 屯昌县| 临朐县| 逊克县| 册亨县| 芜湖县| 苍梧县| 翁牛特旗| 九龙坡区| 龙川县| 晴隆县| 葵青区| 郎溪县| 朝阳市| 白山市| 黄浦区| 来安县| 武夷山市| 渝中区| 新津县| 榕江县| 康定县| 永顺县| 顺昌县| 左云县| 玛多县| 田阳县| 吉林市| 察雅县|