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

首頁 > 開發 > 綜合 > 正文

lua閉包的理解以及表與函數的幾種表達方法

2024-07-21 23:05:00
字體:
來源:轉載
供稿:網友

前一段時間,在學習lua語言時,看lua中文教程,在讀閉包這一節時,看了好幾遍,對閉包這個概念還是很模糊,不能清楚的理解它是怎么回事

最近工作不是很忙,所以就自學了一些lua的知識,但是才看了兩個多小時就遇見了一個問題——閉包。好吧,我是看見它第一眼的時候以為是和close之類有關的巴拉巴拉。。。。(原諒我的無知)!但是越往下看越迷茫,所以就網上看了好多大師寫的東西學習學習,特此記錄一下,以便日后看到不會。。。。。被人鄙視

在lua中函數也是變量,可以存儲在表中,也可以是函數的參數,或是返回值,其實是個lua 的閉包大概可以理解成這個樣子 閉包(函數名){功能抽象, upvalue, env},功能抽象就是函數體了,

upvalue: 是內嵌函數可以訪問外包函數已經創建的所有局部變量,這些局部變量稱為該內嵌函數的外部局部變量(external local variable)或者upvalue,upvalue實際指的是變量而不是值。

function newCounter() local i = 0  return function() i = i + 1   return i  end end 

在上面的例子中i就是一個upvalue

簡單的說閉包是一個函數加上它可以正確訪問的 upvalue。upvalue是嵌套函數的外部函數的局部變量。這個函數一般定義在另一個函數內部;他可以訪問定義在外部函數內的成員變量,參數,以及全局函數。并且這個函數還可以返回函數。

表和函數

一:

Lib = {}Lib.foo = function (x,y) retrun x+ y endLib.goo = function(x)retrun x end;

二:

Lib = {foo = function (x,y) retrun x+ y endgoo = function(x)retrun x end;}

三:

Lib = {}Lib = {}functio Lib.foo (x,y) retrun x+ y end function Lib.goo (x)retrun x end;

以上就是對lua的閉包和表與函數的理解,有需要的小伙伴可以參考下。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精品国产96亚洲一区二区三区 | 亚洲欧美一区二区三区在线观看 | 99999久久久久久 | 欧美 videos粗暴 | 1级黄色毛片 | 国产精品久久久久久久久久尿 | 国产成人在线看 | 久久精品亚洲一区 | 美女视频黄视大全视频免费网址 | 国产精品亚洲激情 | 免费黄色欧美视频 | 无遮挡一级毛片视频 | 成人不卡一区二区 | 久久久久久久免费精品 | 爱操在线| 国产精品久久二区 | 久久tv免费国产高清 | 天天草天天干天天射 | 免费午夜网站 | 久久综合久久综合久久综合 | 精精国产xxxx视频在线野外 | 欧美特黄一级高清免费的香蕉 | 午夜视频在线免费观看 | 亚洲日本韩国在线观看 | 色污视频| 国产一区在线视频观看 | 免费毛片在线视频 | 国产精品视频中文字幕 | 久久精品视频一区二区三区 | 国产成人自拍av | 亚洲精品在线观看网站 | 美女很黄很黄免费的 | 一边吃奶一边摸下娇喘 | 亚洲福利在线视频 | 久久久www成人免费毛片 | 一边吃奶一边摸下娇喘 | 欧美亚洲国产一区 | 精品国产九九九 | 欧产日产国产精品99 | 亚洲一区二区免费视频 | 国产精品视频六区 |