多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

中國最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2

lua教程

Lua 學習筆記之三(高階話題)

閱讀 (2347)

高階話題

1.迭代

1.1  實例代碼:

    --迭代
    local function enum(array)
        local index = 1
        return function()
            local ret = array[index]
            index = index + 1
            return ret
        end
    end

    local function foreach(array,action)
        for element in enum(array)do
            action(element)
        end
    end

    foreach({1,2,3},print)

輸出結果:

1

2

3

1.2  有關迭代的描述:

  • 定義

迭代是for語句的一種特殊形式,可以通過for語句驅動迭代函數對一個給定集合進行遍歷。正式、完備的語法說明較復雜,請參考Lua手冊。

  • 實現

如前面代碼所示:enum函數返回一個匿名的迭代函數,for語句每次調用該迭代函數都得到一個值(通過element變量引用),若該值為nil,則for循環結束。 

2.協作線程 

2.1  實例代碼

    --線程
    local function producer()
        return coroutine.create(
        function(salt)
            local t = {1,2,3}
            for i = 1,#t do
                salt = coroutine.yield(t[i] + salt)
            end
        end
        )
    end

    function consumer(prod)
        local salt = 10
        while true do
            local running ,product = coroutine.resume(prod, salt)
            salt = salt*salt
            if running then
                print(product or "END!")
            else
                break
            end
        end
    end

    consumer(producer())

輸出結果:

11

102

10003

END!

2.2  有關協作線程的描述:

  • 創建協作線程

通過coroutine.create可以創建一個協作線程,該函數接收一個函數類型的參數作為線程的執行體,返回一個線程對象。

  • 啟動線程

通過coroutine.resume可以啟動一個線程或者繼續一個掛起的線程。該函數接收一個線程對象以及其他需要傳遞給該線程的參數。線程可以通過線程函數的參數或者coroutine.yield調用的返回值來獲取這些參數。當線程初次執行時,resume傳遞的參數通過線程函數的參數傳遞給線程,線程從線程函數開始執行;當線程由掛起轉為執行時,resume傳遞的參數以yield調用返回值的形式傳遞給線程,線程從yield調用后繼續執行

  • 線程放棄調度

    線程調用coroutine.yield暫停自己的執行,并把執行權返回給啟動/繼續它的線程;線程還可利用yield返回一些值給后者,這些值以resume調用的返回值的形式返回。 

附錄 常用的Lua參考資料

lua 論壇(lua 中國開發者 luaer中國官司方網站)

Lua參考手冊(最正式、權威的Lua文檔)

Lua編程(在線版,同樣具權威性的Lua教科書)

Lua正式網站的文檔頁面(包含很多有價值的文檔資料鏈接)

Lua維基(最全面的Lua維基百科)

LuaForge(最豐富的Lua開源代碼基地) 

參考文獻《C/C++程序員的Lua快速入門》

關閉
程序員人生
主站蜘蛛池模板: 国产精品福利视频一区二区三区 | 亚洲最大的黄色网 | 国产l精品国产亚洲区久久 国产mv在线观看 | 亚洲国产成人久久一区www妖精 | 久久国产免费一区二区三区 | 午夜视频在线观看视频 | 亚洲h视频在线 | 亚洲福利精品 | 波多野结衣四虎精品影库 | 在线观看视频免费入口 | 亚洲国产欧美在线人成 | 欧美一二三区 | 噜噜噜噜私人影院av线观看 | 国产在线精品一区二区三区 | 手机看片福利日韩欧美看片 | 日本护士handjob | 亚洲天堂久久 | 亚洲国内 | 国产肥老妇 | 一级毛片真人不卡免费播 | 亚洲欧美久久一区二区 | 欧美精品久久久久久久小说 | 最新亚洲人成网站在线影院 | 国产亚洲综合激情校园小说 | 亚洲人成网站在线播放观看 | 国产欧美国产精品第二区 | 成人一a毛片免费视频 | 一区二区自拍 | 亚洲人和日本人jzz护士 | 日本特黄特色大片免费视频播放 | 久久国产免费福利资源网站 | 欧美特黄a级高清免费看片 欧美特黄一级aa毛片 | 欧美一级爱操视频 | 欧洲美女高清一级毛片 | 草的好爽 | 欧美日韩一区二区三区麻豆 | 国农村精品国产自线拍 | 国产成人久久精品激情91 | 亚洲男人的天堂久久精品 | 中文字幕一区精品欧美 | 成人午夜视频在线 |