Lua__杂项

--特别字段 arg,会把传入的参数封装成一个表。arg就表示一个表,arg表的内容除了原先传入的参数,还多了一个传入参数的数量。

average()
average(10)
average(1,30)
average(3,8,90)
average(5,67,7,8,3)

function average(...)
	print(arg[1])
end

-----------------------------------------------------

function average(...)

	--local arg = {...} --不加这个,那average(1,2)函数的结果将是5,因为arg还有隐藏的参数
	res = 0
	for k,v in pairs(arg) do
		res = res+v
	end

	print(res)

end
average(1,2) --输出:3
--# 号,可以表示当前table的最大索引或者字符串的长度
-- #arg 取得参数的个数  	#"hello"

table = {"1","2","3","4"}
text = "Hi"

print(#table,#text); --输出: 4     2

tab = {}
tab[1]=234
tab[2]=234
tab[4]=2334
print(#tab)  --输出:4
--For 循环详解

for 变量列表 in 迭代函数,状态变量,控制变量  do
	--循环体
end

--示例:
for i,j in fun,10,0 do --10与0当做参数传递给迭代函数fun,状态变量不会改变,如果是函数体那就获取返回值
	print(i,j)
end

function fun(init,control) --这个函数的作用是在循环过程中,每次返回当前循环的累计值i与相乘的j
	if(control<=init) then
		control=control+1 
		return control,control*control --返回两个变量,既是上面的i与j
	else
		return nil --达到初始值时就返回空值
	end
end
--模块的使用
module.lua如下
{
module = {}

module.var = "11"

module.func1 = function () --与下面的函数是一模一样的,因为Lua的函数也可当做变量
	print("这个是Module里面的函数")
end

function module.func1()
	print("这个是Module里面的函数")
end

return module
}

require.lua如下
{
--  require "模块名"
--  require ("模块名")

m = require "module"

print(m.var) --输出:11
m.func1() --输出:这个是Module里面的函数

}

猜你喜欢

转载自blog.csdn.net/Le_Sam/article/details/85142866
LUA