欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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调用