溫馨提示×

溫馨提示×

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

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

關(guān)于lua中的loadstring

發(fā)布時間:2020-08-06 11:16:30 來源:網(wǎng)絡(luò) 閱讀:521 作者:螞蟻雄心 欄目:開發(fā)技術(shù)

f = loadstring("i=i+1")基本等價于f = function() i=i+1 end

但是第二段代碼比第一段代碼要快得多,因?yàn)樗辉诰幾g對應(yīng)程序塊時被編譯一次,而第一段代碼卻在

每次調(diào)用loadstring時都被編譯,由于loadstring每次編譯時不涉及詞法域,所以上述兩段代碼并不等價,如下所示:

i = 32

local i = 0

f = loadstring("i = i + 1;print(i)")

g = function() i = i + 1; print(i) end

f() ---33

g() ---1

函數(shù)g如期地操作了局部的i,但是f操作的是全局的i,這是因?yàn)閘oadstring總是在全局環(huán)境中編譯它的字符串。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI