Lua基础

来源:互联网 发布:论坛抢沙发软件 编辑:程序博客网 时间:2024/06/01 22:41
1.制作模块 (模拟c#中的静态类)
calc={} --初始化模块--定义变量calc.name="KiwiClac";--定义函数function calc.jia(a,b)    return a+b;endfunction calc.jian(a,b)    return a-b;end--结束模块return calc;
require("calc") --引用模块可以用 require calc 引用--访问模块变量print(calc.name);--访问模块函数print(calc.jia(1,2));

2用table制作元素表
--设置元素表tableA={} --表A[主表]tableB={} --表B[元表/子表]--设置tableB为tableA的元表setmetatable(tableA,tableB);--判断tableA是否有元素print(getmetatable(tableA));
table表访问元表:
tableA={name="Kiwi",age=12};tableB={gender="x",address="烟台"};setmetatable(tableA,tableB);tableB.__index=tableB --设置元表的__index索引print(tableA.name,tableA.age);--print(tableA[name],tableA[age]);print(tableA.gender,tableA.address);

3.模拟c#中的类

--模拟c#中的类Person={name,age,gender,address="China"} --在Person类中模拟字段--模拟构造方法function Person:New()   local obj={} --初始化一个新的表setmetatable(obj,Person); --把当前的类[表]设置为新表的元表Person.__index=Person; --指定元表的__index索引return obj;end--模拟一个方法function Person:Show()print(self.name,self.age,self.gender,self.address);end--实例化对象p1=Person:New()p1.name="ade";p1.age="1";p1.gender="df";p1.address="dfada";p1:Show();


4.模拟类的继承
--模拟类的继承--父类Animal={name};--构造方法function Animal:New(name)    local obj={};setmetatable(obj,self);self.__index=self;self.name=name;return obj;end--普通方法function Animal:Tostring()    print(self.name);end--子类/继承模拟Cat=Animal:New();--子类的构造方法function Cat:New(name)    local obj=Animal:New(name);setmetatable(obj,self);self.__index=self;return obj;end--子类普通方法function Cat:Eat(food)    print(Cat.name.."Eat"..food);end--实例化jfm=Cat:New("加菲猫");jfm:Eat("yu");

5.引用Lua模拟类

   dofile([路径名]脚本名.lua)

例:

  1.以当前脚本为定位点寻找所要引用的脚本

   dofile(“1.Lua”)--脚本在同一个文件夹

   dofile("文件夹名\\1.lua") --所要引用的脚本在与当前脚本同级的文件夹中

   dofile(“..\\1.lua”)--"..\\"是返回上一级,当前脚本的文件夹与所引用脚本在同 一级中

  2.使用绝对路径

   dofile(“c:\\dfa\\dfa\\1.lua”)

  

注意:保存的脚本要以.lua结尾

原创粉丝点击