美文网首页
Lua-基本语法

Lua-基本语法

作者: 马戏团小丑 | 来源:发表于2017-07-31 14:02 被阅读47次

    1.基本语法

    a= 5; -- 全局变量 
    print(a)
    local a = 6;  -- local局部变量
    print(a)
    
    -- if用法 获得最大值 
    function max(a,b)
        if a>b then
            return a
            else
            return b
        end
    end
    print(max(2,3))
    
    -- for循环
    for var=1, 5 do
        print(var)
    end
    

    2.表

    config = {a="a",b=17}  -- 定义时候赋值
    config.name = "hello"
    config.num = 13    
    -- 点跟中括号是一样
    config["score"] = 78
    
    print(config.a)
    print(config.name)
    print(config["score"])
    
    for key, var in pairs(config) do
         print(key,var)
    --   a a
    --num 13
    --name  hello
    --b 17
    --score 78
    end
    

    3.数组

    arr = {1,2,3,"hello"} -- 数组角标是从1开始,不是从0
    

    4.面向对象之复制表的方式面向对象

    -- 复制
    function clone(tab)
        local ins = {}
        for key, var in pairs(tab) do
            ins[key] = var
        end
        return ins
    end
    
    function copy(dist,tab)
      for key, var in pairs(tab) do
        dist[key] = var
      end
    end
    
    -- People类
    People = {}
    
    People.sayHi = function ()
        print("People say hi")
    end
    People.sayHi2 = function (self)
      print("People say hi :"..self.name) -- ..表示字符串拼接
    end
    
    -- 构造方法
    People.new = function (name)
        local self = clone(People)
        self.name = name
        return self
    end
    
    local p = clone(People)
    p.sayHi() -- People say hi
    local p1 = People.new("zhangsan")
    p1.sayHi2(p1) -- People say hi :zhangsan
    
    -- 类的继承
    Man = {}
    Man.new = function (name)
      local self = People.new(name)
      -- man的所有键值对都赋值到people上面,就相当是一个继承的概念
      copy(self,Man)
      return self
    end
    
    local m = Man.new("man")
    m.sayHi2(m)  -- People say hi :man
    

    5.面向对象之函数闭包的方式面向对象

    function People(name)
        local self = {}
        local function init()
        self.name = name
        end
        self.sayHi = function ()
            print("People say hi :"..self.name)
        end
        init()
        return self
    end
    
    local p = People("zhangsan")
    p.sayHi() -- People say hi :zhangsan
    
    function Man(name)
      local self = People(name)
        self.sayHi1 = function ()
        print("Man say hi :"..self.name)
      end
      return self
    end
    
    local m = Man("man")
    m.sayHi() -- People say hi :man
    m.sayHi1() -- Man say hi :man
    

    相关文章

      网友评论

          本文标题:Lua-基本语法

          本文链接:https://www.haomeiwen.com/subject/fmbllxtx.html