美文网首页
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-基本语法

    1.基本语法 2.表 3.数组 4.面向对象之复制表的方式面向对象 5.面向对象之函数闭包的方式面向对象

  • Lua-基本语法、数据类型、变量

    轻量级: 它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里可扩展: Lua提供...

  • Markdown语法

    Markdown基本语法 Markdown基本语法1 Markdown基本语法2(全、有用)

  • Swift 基本语法04-"switch"和

    Swift 基本语法01-Swift简介Swift 基本语法02-"let"和"var"Swift 基本语法03-...

  • Swift 基本语法06-数组和字典

    Swift 基本语法01-Swift简介Swift 基本语法02-"let"和"var"Swift 基本语法03-...

  • Swift 基本语法03-"if let"和

    Swift 基本语法01-Swift简介Swift 基本语法02-"let"和"var"Swift 基本语法04-...

  • Swift 基本语法05-"String"

    Swift 基本语法01-Swift简介Swift 基本语法02-"let"和"var"Swift 基本语法03-...

  • 箭头函数(arrow function)

    基本语法 高级语法

  • 基本语法

    注释使用#符号,多行注释用''',"" 语句之间使用分号(;)分割 字符串有两种索引方式,从左往右以 0 开始,从...

  • 基本语法

    语句与表达式 表达式会产生一个值,而语句不会。 js 中有两种像语句的表达式 对象字面量 该语句即可认为是一个创建...

网友评论

      本文标题:Lua-基本语法

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