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

溫馨提示×

溫馨提示×

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

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

lua中的closure(閉合函數)

發布時間:2020-06-29 01:33:22 來源:網絡 閱讀:540 作者:螞蟻雄心 欄目:開發技術

若將一個函數寫在另一個函數之內,那么這個位于內部的函數便可以訪問外部函數的局部變量。

function newCounter()

local i = 0

return function()----匿名函數

         i = i + 1

         return i

       end

end


c1 = newCounter()

c2 = nweCounter()

print(c1())---->1

print(c1())---->2

print(c2())---->1

print(c1())---->3

print(c2())---->2

在匿名函數內部,i既不是全局變量也不是局部變量,將其稱為“非局部的變量”。

初看上去,由于創建變量i的newCounter函數已經返回,所以之后每次調用匿名函數時,i都應該超出了作用域。但是其實lua會以closure機制來處理這種情況。closure就是一個函數加上該函數所訪問的所有“非局部的變量”。如果再次調用newCounter時,那么會新創建一個新的局部變量i,從而產生一個新的closure,上面c1和c2是同一個函數創建的兩個不同的closure,它們各自擁有局部變量i的實例,它們各自獨立,導致打印結果沒有關聯。

向AI問一下細節

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

AI

恭城| 塔城市| 金乡县| 开原市| 安达市| 东光县| 望谟县| 沐川县| 镇江市| 雷波县| 德庆县| 双桥区| 建昌县| 绍兴市| 太康县| 万全县| 进贤县| 永泰县| 余干县| 虎林市| 万安县| 晋州市| 富阳市| 长治县| 盘锦市| 紫云| 高雄县| 黄龙县| 军事| 丹巴县| 嘉兴市| 灵宝市| 高邑县| 西峡县| 望都县| 罗江县| 宁安市| 平舆县| 边坝县| 大丰市| 上林县|