91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

孟州市| 西峡县| 时尚| 博罗县| 凌云县| 渑池县| 宜州市| 汉沽区| 探索| 江油市| 和顺县| 油尖旺区| 黔东| 扎兰屯市| 西和县| 邵阳县| 沙坪坝区| 伊吾县| 芦山县| 台东县| 古田县| 楚雄市| 会东县| 墨竹工卡县| 水富县| 瓮安县| 彭阳县| 仪陇县| 靖西县| 九江市| 门头沟区| 聂拉木县| 垫江县| 天台县| 高雄县| 襄樊市| 武乡县| 三门峡市| 洪洞县| 祁连县| 林甸县|