zoukankan      html  css  js  c++  java
  • lua获取table的长度

    lua在获取table的size时,不能一味的使用类似于java里面的length函数

    table的存储是类似hashTable的kv形式。

    -- table.getn(tableName) 得到一个table的大小,等同于操作符#  
    -- 要注意的是:该table的key必须是有序的,索引是从1开始的。  
      
      
    --例如有序的  
    local xiang = {10,22,34,42,51}  
    print("xiang length ==",table.getn(xiang)) --结果为:[LUA-print] xiang length ==    5  
      
      
    --例如无序的  
    local song = {s=10,h=22,x=34,m=42,n=51}  
    print("song length ==",table.getn(song)) --结果为:[LUA-print] song length ==    0  
      
      
    --对于无序的我们可以这样做  
    local count = 0  
    for k,v in pairs(song) do  
        count = count + 1  
    end  
    print("song length ==",count) --结果为: [LUA-print] song length == 5  

    如果要写个统一的函数进行string元素或者list判断,可以用下面的方式:

    local function load_data(data)
      local s
    for k, v in pairs(data) do if type(v) == "string" then s:set(k, v) else for in_key, in_value in pairs(v) do s:set(k .. "_" .. in_key, in_value) end -- table.getn只有在table是有序的list时才能够获取到正确的lenth,否则需要自己计数有多少个元素 s:set(k .. "inum", table.getn(v)) end end end
  • 相关阅读:
    HDU 6071
    HDU 6073
    HDU 2124 Repair the Wall(贪心)
    HDU 2037 今年暑假不AC(贪心)
    HDU 1257 最少拦截系统(贪心)
    HDU 1789 Doing Homework again(贪心)
    HDU 1009 FatMouse' Trade(贪心)
    HDU 2216 Game III(BFS)
    HDU 1509 Windows Message Queue(队列)
    HDU 1081 To The Max(动态规划)
  • 原文地址:https://www.cnblogs.com/sonofelice/p/8327886.html
Copyright © 2011-2022 走看看