成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Lua程序設(shè)計(jì)之深入函數(shù)-創(chuàng)新互聯(lián)

先看一個(gè)函數(shù):

成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站與策劃設(shè)計(jì),西區(qū)網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:西區(qū)等地區(qū)。西區(qū)做網(wǎng)站價(jià)格咨詢:13518219792

function derivative(f,delta)

    delta = delta or1e-4

    return function(x)

        return (f(x+delta)-f(x))/delta

    end

end

對特定的函數(shù)f調(diào)用derivative(f)將(近似地)返回其導(dǎo)數(shù),例如

c=derivative(math.sin)

print(math.cos(10),c(10)) --c(10)這樣的調(diào)用相當(dāng)于derivative(math.sin)(10)

這個(gè)例子最讓我驚奇的是,10這個(gè)參數(shù)可以直接通過(10)的方式傳進(jìn)去里面嵌套的函數(shù)。

1. 閉合函數(shù),closure,就是一個(gè)函數(shù)加上該函數(shù)所需訪問的所有“非局部的變量”。

2. 非局部的變量,就是在內(nèi)部嵌套函數(shù)可以訪問的位于其外部嵌套環(huán)境中的局部變量,即不是全局變量也不是局部變量。即上面例子中的delta或者下面例子中的i。

例子:

    Function newCounter()

        local i= 0 –非局部變量

        return function()

            i= i+1

        return i

    end

c1 =newCounter() -- not c1 = newCounter,

Print(c1()) --1 相當(dāng)于 newCounter()()

Print(c1()) --2 相當(dāng)于 newCounter()()

    由于創(chuàng)建變量i的函數(shù)(newCounter)已經(jīng)返回,所以之后的每次調(diào)用每次調(diào)用匿名函數(shù)時(shí),i都應(yīng)是已經(jīng)超出了作用范圍,但其實(shí)lua會以closure的概念來正確地處理這種情況。

    在這里,不禁要問,這里的i是怎樣保存起來的,是類似于c++中的局部靜態(tài)變量嗎?

    這里有一個(gè)答案來自網(wǎng)上:對于閉合函數(shù)而言,屬于它的非局部變量,并不是在調(diào)用它的時(shí)候臨時(shí)產(chǎn)生的,而是和它一起存在的。所以每次調(diào)用閉合函數(shù),非局部變量的值都不會被重置。

3. 閉合函數(shù)的應(yīng)用(重定義函數(shù)):沙盒

4. 由于閉合函數(shù)的特殊,我們需要注意兩種情況:a.非全局函數(shù)的調(diào)用順序(需要前向聲明嗎?),function func () … end的寫法只是一種語法糖,它相當(dāng)于func = function。b.正確的尾調(diào)用。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

當(dāng)前標(biāo)題:Lua程序設(shè)計(jì)之深入函數(shù)-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://jinyejixie.com/article14/jgjge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)App設(shè)計(jì)、營銷型網(wǎng)站建設(shè)網(wǎng)站營銷、網(wǎng)站收錄手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)
天水市| 东莞市| 华坪县| 宿松县| 皋兰县| 石首市| 刚察县| 永德县| 山阳县| 湾仔区| 斗六市| 乌兰县| 呈贡县| 定南县| 平凉市| 孝昌县| 敦煌市| 增城市| 桓仁| 汉川市| 长海县| 上蔡县| 临猗县| 大新县| 巴林左旗| 博白县| 东乌珠穆沁旗| 宿松县| 南漳县| 田阳县| 昌乐县| 松滋市| 宁国市| 舞钢市| 乐陵市| 济南市| 宁波市| 丹东市| 襄垣县| 小金县| 余干县|