hi man

博客园 首页 新随笔 联系 订阅 管理

下面是我在写LUA脚本过程中遇到的问题

1----------------------------------------------------------------

local  t = {}

t[1] = 10
t[3] = 20
t[4] = 30

print(table.getn(t))

结果 : 4

LUA 中的 table.getn 函数是根据下标数来设定的 , 上面LUA代码中 "t[4] = 30" 下标为 4。则 table.getn(t) 的结果为4.

如果在 LUA 脚本中要获取 TABLE 大小时,要 "for k, v in pairs(t) do ... end" 方法。

即:    

      function GetTableCount( t )

                  local count = 0

                  for k, v in pairs( t ) do

                          count = count + 1

                  end

                  return count

      end

      print( GetTableCount( t ) )

      result :  3

 

2----------------------------------------------------------------

LUA中产生指定范围内的随机数

方法 :

                  local randomNumber = {}    -- 表【rangeBegin, rangeEnd】

                  randomNumber = { math.random(beginNum, endNum),  math.random(beginNum, endNum) }

 

 

 

3----------------------------------------------------------------

LUA中类

方法:  

                 _index 键名;   metatable 方法

      local SceneData = { data = 0 }

                 function SceneData:new()

          local o =  {}

                            -- 下面相当于 C++ 继承, o 继承 SceneData, 这里的 self 相当于 SceneData,   self._index = self  就是 SceneData 指向自己。

          setmetatable( o, self )   

          self._index = self 

      end

 

       这个就是相当于 C++ 中的

      // self._index = self  (自己指向自己, 父类)

      class SceneData

      {

          public:

             int  m_data;

      }

      

      // setmetatable( o, self ) 

      class o : public SceneData

      {

      }

 

       

 

未完....

 

posted on 2012-11-19 15:31  KuPig  阅读(225)  评论(0编辑  收藏  举报