最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2015年08月13日 08:52:09   投稿:hebedich  
本文首先通過具體的例子講解了Lua中閉包的概念,然后總結(jié)了閉包的應(yīng)用場合,最后探討了Lua中閉包的實現(xiàn)原理,以及l(fā)ua中表與函數(shù)的3種表達方式的匯總

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

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

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

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

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

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

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

表和函數(shù)

一:

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

二:

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

三:

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

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

相關(guān)文章

最新評論

和田县| 绥阳县| 黎城县| 龙里县| 沙坪坝区| 平利县| 洛隆县| 仪陇县| 浮梁县| 昌吉市| 互助| 北宁市| 类乌齐县| 梁平县| 曲周县| 宝应县| 镇平县| 建德市| 浏阳市| 定南县| 荆州市| 龙陵县| 文山县| 丁青县| 女性| 万源市| 夹江县| 盐边县| 荔波县| 红桥区| 福海县| 花莲市| 张家港市| 农安县| 灵武市| 拉孜县| 沂南县| 郴州市| 南充市| 固镇县| 陵川县|