lua面象对象写法

一直都想找一个好的嵌入脚本库,这样可以把一些常变动的逻辑处理以脚本形式独立出来,发现google的v8引擎不错,完全支持javascript,但是系统太过庞大,然后就找到了lua.
今天下载了lua下来编译,这个引擎就小巧多了.编译后会生成lua和luac两个执行文件,前者是CLI交互的(也可以执行脚本文件和编辑后的文件),在学习和测试脚本时很有用,后者是编辑脚本的.
然后花了半小时看lua的文档,语法简单,支持闭包,与js有些类似.而且有些特性又很有意思,比如多变量的赋值,可以用 a,b,c=1,2,3 这样的赋值,函数也可以返回 1,2,3 然后赋值,如 a,b,c=func().
lua实现面象对象与javascript类似,我这儿写了个面向对象的示例.

function Human(name)
 local this={
 name=name,
 a=1,
 b=2,
 c=3,
 d=4
 }
 this.eat=function(food)
 print(this.name.." eats "..food)
 end
 this.add=function(n)
 this.a,this.b,this.c,this.d=this.a+n,this.b+n,this.c+n,this.d+n
 end
 this.getName=function()
 print("my name is "..this.name)
 end
 this.print=function()
 print(this.a,this.b,this.c,this.d)
 end
 return this
end

a=Human("Hover")
b=Human("Lees")
a.eat("meat bun")
b.eat("sweet bun")
a.add(1)
b.add(2)
a.getName()
a.print()
b.getName()
b.print()

Leave a comment

Your email address will not be published. Required fields are marked *