Lua笔记1基础语法
程序员文章站
2024-02-18 18:22:10
...
简单语法这里不写,只做一些比较重要的部分。
1、字符串
字符串的链接使用… ,来表示
#“abc” 表示输出"abc"字符串的长度
“1”+“2”lua会计算出答案,输出3
2、元表metatable
如果__index是一个表的话,那么当前表中没有键的时候,回去__index表中找
local a = {c = 1}
a.__index = {b = "3"}
function TestClass()
local tt = {}
setmetatable(tt,a)
print(tt.b)
end
3、self用法
在函数调用的时候有时候会考虑到直接引用自身,这里就会涉及到函数声明和函数调用时候的点和冒号的使用。
看下面的代码
local ta = {c = 1}
function ta:new(tc)
local b = {}
setmetatable(b,self)
self.__index = self
b.c = tc
return b
end
function ta:printc()
print("c = ",self.c)
end
s = ta:new(2)
s:printc()
第二段
local ta = {c = 1}
function ta.new(self,tc)
local b = {}
setmetatable(b,self)
self.__index = self or 0
b.c = tc
return b
end
function ta.printc(self)
print("c = ",self.c)
end
s = ta.new(ta,2)
s.printc(s)
这里可以看到,首先运行结果是一样的,同时第二段使用了点,和第一段不同的是,第二段在函数调用和函数声明的时候都省略了self的变量。也就是说如果直接使用冒号,那么意思是可以省略self的使用,直接将调用对象作为隐藏参数self调用