青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Fork me on GitHub
隨筆 - 215  文章 - 13  trackbacks - 0
<2017年12月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456


專注即時通訊及網(wǎng)游服務(wù)端編程
------------------------------------
Openresty 官方模塊
Openresty 標(biāo)準(zhǔn)模塊(Opm)
Openresty 三方模塊
------------------------------------
本博收藏大部分文章為轉(zhuǎn)載,并在文章開頭給出了原文出處,如有再轉(zhuǎn),敬請保留相關(guān)信息,這是大家對原創(chuàng)作者勞動成果的自覺尊重!!如為您帶來不便,請于本博下留言,謝謝配合。

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

相冊

Awesome

Blog

Book

GitHub

Link

搜索

  •  

積分與排名

  • 積分 - 220944
  • 排名 - 117

最新評論

閱讀排行榜

lua實現(xiàn)List及Dictionary

轉(zhuǎn)載:http://www.cnblogs.com/sanyejun/p/7801432.html

http://www.maosongliang.com/archives/122

參考 http://blog.csdn.net/jason_520/article/details/54173685

實現(xiàn)List

List = {}
List.__index = List
 
function List:New(t)
    local o = {itemType = t}
    setmetatable(o, self)
    return o
end
 
function List:Add(item)
    table.insert(self, item)
end
 
function List:Clear()
    local count = self:Count()
    for i=count,1,-1 do
        table.remove(self)
    end
end
 
function List:Contains(item)
    local count = self:Count()
    for i=1,count do
        if self[i] == item then
            return true
        end
    end
    return false
end
 
function List:Count()
    return table.getn(self)
end
 
function List:Find(predicate)
    if (predicate == nil or type(predicate) ~= 'function') then
        print('predicate is invalid!')
        return
    end
    local count = self:Count()
    for i=1,count do
        if predicate(self[i]) then 
            return self[i] 
        end
    end
    return nil
end
 
function List:ForEach(action)
    if (action == nil or type(action) ~= 'function') then
        print('action is invalid!')
        return
    end
    local count = self:Count()
    for i=1,count do
        action(self[i])
    end
end
 
function List:IndexOf(item)
    local count = self:Count()
    for i=1,count do
        if self[i] == item then
            return i
        end
    end
    return 0
end
 
function List:LastIndexOf(item)
    local count = self:Count()
    for i=count,1,-1 do
        if self[i] == item then
            return i
        end
    end
    return 0
end
 
function List:Insert(index, item)
    table.insert(self, index, item)
end
 
function List:ItemType()
    return self.itemType
end
 
function List:Remove(item)
    local idx = self:LastIndexOf(item)
    if (idx > 0) then
        table.remove(self, idx)
        self:Remove(item)
    end
end
 
function List:RemoveAt(index)
    table.remove(self, index)
end
 
function List:Sort(comparison)
    if (comparison ~= nil and type(comparison) ~= 'function') then
        print('comparison is invalid')
        return
    end
    if func == nil then
        table.sort(self)
    else
        table.sort(self, func)
    end
end

 

實現(xiàn)Dic

Dictionary = {}
Dictionary.__index = Dictionary
 
function Dictionary:New(tk, tv)
    local o = {keyType = tk, valueType = tv}
    setmetatable(o, self)
    o.keyList = {}
    return o
end
 
function Dictionary:Add(key, value)
    if self[key] == nil then
        self[key] = value
        table.insert(self.keyList, key)
    else
        self[key] = value
    end
end
 
function Dictionary:Clear()
    local count = self:Count()
    for i=count,1,-1 do
        self[self.keyList[i]] = nil
        table.remove(self.keyList)
    end
end
 
function Dictionary:ContainsKey(key)
    local count = self:Count()
    for i=1,count do
        if self.keyList[i] == key then
            return true
        end
    end
    return false
end
 
function Dictionary:ContainsValue(value)
    local count = self:Count()
    for i=1,count do
        if self[self.keyList[i]] == value then
            return true
        end
    end
    return false
end
 
function Dictionary:Count()
    return table.getn(self.keyList)
end
 
function Dictionary:Iter()
    local i = 0
    local n = self:Count()
    return function ()
        i = i + 1
        if i <= n then
            return self.keyList[i]
        end
        return nil
    end
end
 
function Dictionary:Remove(key)
    if self:ContainsKey(key) then
        local count = self:Count()
        for i=1,count do
            if self.keyList[i] == key then
                table.remove(self.keyList, i)
                break
            end
        end
        self[key] = nil
    end
end
 
function Dictionary:KeyType()
    return self.keyType
end
 
function Dictionary:ValueType()
    return self.valueType
end

其中Dictionary:Iter是用來遍歷Dictionary的,用法如下:

Lua

local dic = Dictionary:New('string', 'string')
dic:Add('BeiJing', '010')
dic:Add('ShangHai', '021')

while true do
    local it = dic:Iter()
    if it ~= nil then
        local key = it()
        local value = dic[key]
        print('key: ' .. tostring(key) .. ' value: ' .. tostring(value))
    else
        break
    end
end

local dic = Dictionary:New('string', 'string')
dic:Add('BeiJing', '010')
dic:Add('ShangHai', '021')
 
while true do
    local it = dic:Iter()
    if it ~= nil then
        local key = it()
        local value = dic[key]
        print('key: ' .. tostring(key) .. ' value: ' .. tostring(value))
    else
        break
    end
end
posted on 2018-05-08 11:07 思月行云 閱讀(1123) 評論(0)  編輯 收藏 引用 所屬分類: Nginx\Openresty
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美激情二区三区| 久久精品国产免费看久久精品| 一区二区三区不卡视频在线观看 | 欧美不卡视频一区| 久久女同精品一区二区| 久久裸体视频| 亚洲国产精品免费| 欧美成人精品在线播放| 亚洲精品韩国| 亚洲一区二区三区四区中文| 亚洲欧美中日韩| 久久青草久久| 欧美系列精品| 玉米视频成人免费看| 亚洲精品三级| 午夜欧美大片免费观看| 久热精品视频在线观看一区| 亚洲第一主播视频| 一本色道久久综合亚洲精品不| 亚洲综合国产| 欧美成人嫩草网站| 国产精品s色| 国产一区二区三区自拍| 日韩视频欧美视频| 久久久亚洲人| 亚洲色图综合久久| 免费欧美视频| 国产亚洲欧美一区在线观看 | 亚洲电影免费观看高清完整版在线| 亚洲国产精品成人一区二区| 一本色道久久88综合亚洲精品ⅰ | 欧美大片免费| 国产婷婷97碰碰久久人人蜜臀| 亚洲激情网址| 久久婷婷国产麻豆91天堂| 99国产精品久久久| 免费成人毛片| 国产嫩草影院久久久久| 99热免费精品在线观看| 久久在线91| 午夜精品福利一区二区蜜股av| 欧美二区在线看| 伊人伊人伊人久久| 久久久久久穴| 亚洲欧美日韩专区| 国产精品美女久久福利网站| av不卡免费看| 亚洲福利电影| 久久综合久色欧美综合狠狠| 国产欧美日韩一区二区三区在线观看 | 午夜欧美视频| 一区二区三区四区五区视频| 亚洲欧美日韩精品一区二区| 欧美日韩1080p| 亚洲国产另类久久久精品极度| 久久国产婷婷国产香蕉| 一区二区三区四区精品| 欧美精品国产一区| 91久久精品美女高潮| 免费不卡视频| 久久久精品动漫| 一区二区亚洲欧洲国产日韩| 久久国产精彩视频| 欧美在线免费播放| 激情六月婷婷综合| 欧美国产综合视频| 欧美成人免费全部| 日韩一区二区免费高清| 亚洲国产精品免费| 欧美国产日韩a欧美在线观看| 亚洲经典一区| 亚洲国产精品va| 欧美激情一区三区| 亚洲永久视频| 亚洲欧洲99久久| 韩国精品一区二区三区| 欧美a级理论片| 欧美韩日一区二区| 亚洲欧美精品| 久久久精品免费视频| 亚洲第一狼人社区| 亚洲精品久久| 国产精品国产三级国产普通话蜜臀| 亚洲视频在线观看视频| 欧美亚洲在线| 亚洲片在线观看| 一本色道久久综合亚洲精品按摩| 国产精品卡一卡二卡三| 久久精品在这里| 欧美电影免费观看高清| 亚洲欧美国产另类| 久久久精品日韩欧美| 日韩亚洲一区二区| 欧美一区精品| 日韩午夜av在线| 亚洲欧美怡红院| 亚洲区中文字幕| 亚洲一区影院| 亚洲精品一区二区在线| 午夜精品在线看| 一道本一区二区| 久久久国际精品| 西西裸体人体做爰大胆久久久| 久久先锋影音av| 欧美一区二区三区四区在线观看地址| 免费不卡视频| 亚洲欧洲日韩在线| 亚洲一区久久| 最近看过的日韩成人| 亚洲社区在线观看| 亚洲激情在线视频| 欧美一区视频在线| 亚洲网站视频福利| 另类图片综合电影| 久久国产主播精品| 欧美精品在线观看91| 久久婷婷久久| 国产精品久久一级| aaa亚洲精品一二三区| 亚洲人成人一区二区三区| 欧美在线免费观看| 欧美在线日韩| 国产精品欧美日韩久久| 99riav1国产精品视频| 亚洲美女中文字幕| 久久久久国产一区二区三区四区 | 国产精品久久久久aaaa樱花| 久久久噜噜噜久久人人看| 国产精品免费看| 在线中文字幕一区| 亚洲无线一线二线三线区别av| 欧美成人资源网| 亚洲国产裸拍裸体视频在线观看乱了中文 | 欧美在线免费看| 国产精品嫩草久久久久| 一本色道久久综合亚洲二区三区| 日韩午夜黄色| 欧美精品一区二区在线播放| 欧美激情亚洲视频| 亚洲激情成人网| 欧美v日韩v国产v| 亚洲国产成人精品久久| 亚洲欧洲一区二区三区| 欧美精品videossex性护士| 91久久国产综合久久91精品网站| 亚洲国产mv| 久久综合伊人77777| 欧美福利视频| 一区二区电影免费观看| 欧美日韩在线观看一区二区| 一区二区三区视频在线| 欧美中文字幕在线| 国产一区深夜福利| 老司机免费视频久久| 欧美激情一区二区三区成人| 亚洲另类自拍| 欧美午夜大胆人体| 香蕉久久久久久久av网站| 久热精品视频在线| 一二三四社区欧美黄| 欧美激情一区二区三区不卡| 黄色在线一区| 99在线精品观看| 亚洲欧美综合国产精品一区| 国产一区二区三区日韩| 麻豆精品在线视频| 亚洲最新色图| 久久久夜精品| 一区二区三区波多野结衣在线观看| 国产精品国产三级国产专播品爱网| 夜夜嗨av色综合久久久综合网| 欧美在线高清视频| 亚洲国产婷婷综合在线精品| 欧美视频在线观看| 久久久久久久999| 99国产精品99久久久久久| 久久久999| 亚洲网站视频福利| 精品成人在线| 国产精品狼人久久影院观看方式| 久久久亚洲欧洲日产国码αv| 亚洲精品日韩欧美| 麻豆成人综合网| 亚洲欧美成人一区二区三区| 亚洲高清网站| 国产视频欧美视频| 欧美日韩国产综合视频在线| 小处雏高清一区二区三区| 亚洲国产婷婷香蕉久久久久久99| 久久国产精品一区二区| 亚洲国产综合在线| 国产精品一区二区在线观看网站 | 欧美一区视频在线| 亚洲少妇中出一区| 亚洲三级免费| 亚洲电影在线播放| 鲁大师影院一区二区三区| 午夜在线一区| 亚洲一区区二区| 一本色道久久加勒比精品|