麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > 綜合 > 正文

Lua極簡入門指南:全局變量

2024-07-21 23:04:16
字體:
供稿:網(wǎng)友

全局環(huán)境

Lua 把全局變量放在一個 table _G 中,這個 table 被叫做全局環(huán)境(global environment)。打印所有的全局變量名:

 

復(fù)制代碼 代碼如下:

for n in pairs(_G) do print(n) end

 

_ENV(Lua 5.2 開始支持)

對于一個 free name(名字沒有綁定任何聲明)var 實際上會被轉(zhuǎn)換為 _ENV.var(每個 chunk 中都會存在一個名為 _ENV 的變量):

 

復(fù)制代碼 代碼如下:

v1 = 1
local v2 = 2
print(_ENV.v1)  --> 1
print(_ENV.v2)  --> nil
 
function f(v3)
    v4 = 4
    local v5 = 5
    print(_ENV.v3)  --> nil
    print(_ENV.v4)  --> 4
    print(_ENV.v5)  --> nil
 
    for v6 = 1, 2 do
        print(_ENV.v6)  --> nil
    end
end
 
f(3)

 

任何作為 _ENV 的值的 table 被叫做環(huán)境(environment)。Lua 加載一個 chunk 的時候,此 chunk 的 _ENV 默認值為全局環(huán)境。看一個簡單的例子:

 

復(fù)制代碼 代碼如下:

print(math)  --> table: 000000000078BCC0
 
local print = print
_ENV = {}
print(math)  --> nil

 

一個比較有趣的例子是:

 

復(fù)制代碼 代碼如下:

a = 2
do
    local _ENV = {print = print, a = 14}
    print(a)  --> 14
end
print(a)  --> 2

 

正如前面說的 a 會被轉(zhuǎn)換為 _ENV.a,而 do end 中定義了一個新的 _ENV,因此第一個 print(a) 輸出了局部變量 _ENV 的 a 的值。由此可以看到,我們可以很容易的為一個函數(shù)創(chuàng)建一個私有的環(huán)境:

 

復(fù)制代碼 代碼如下:

function factory(_ENV)
    return function()
        return a
    end
end
 
f1 = factory{a = 6}
f2 = factory{a = 7}
print(f1())  --> 6
print(f2())  --> 7

 

類似的,我們在不同的函數(shù)中共享一個特定的公共環(huán)境也是很容易做到的。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产精品一区二区三区在线播放 | 久久免费视频一区 | 55夜色66夜色国产精品视频 | 91九色电影| 激情黄页| 中文字幕网在线 | 国产精选电影免费在线观看网站 | 最新在线黄色网址 | 欧美a一 | 天天色综合2 | 欧美a欧美 | 性视频久久 | 伊人成人免费视频 | 黄色片在线播放 | 国产精品一区2区3区 | javhdfreejaⅴhd | 黄 色 免费网 站 成 人 | 精品国产91久久久久久浪潮蜜月 | 在线天堂中文在线资源网 | 久久久久久久久久久影视 | 久久久国产一级片 | 性少妇videosexfreexx入片 | 成人免费视频 | 久久久精品视 | 中国产一级毛片 | 欧美在线观看视频一区二区 | 亚洲午夜久久久精品一区二区三区 | 999插插插 | 99久久婷婷国产综合精品青牛牛 | 黄a大片| 日本精品中文字幕 | 亚洲一区二区在线视频 | 欧美在线成人影院 | 欧美一级黄色片免费观看 | 久久不射电影 | 黄色毛片一级视频 | 91丝袜 | 亚洲最大av网站 | 色就色 综合偷拍区91网 | 日日噜噜夜夜爽 | 午夜视频中文字幕 |