上一篇: Lua基础学习(一)https://blog.youkuaiyun.com/sun_zeliang/article/details/86609555
Lua函数
格式
函数类型 function 函数名称(参数1, 参数2, 参数3,..., 参数n)
执行体
return 返回值1,返回值2,返回值3,..
end
和C#还是有一点区别的,首先Lua不需要写返回值类型,然后返回值是可以返回多个的,逗号 ‘,’ 隔开 ,而且Lua函数只有全局函数和局部函数的区别,全局函数就什么都不用加,局部函数在最前面加 local
实例:
function func_Max(array)
if(#array<1)
then
print("数组数量为0")
return
end
index=array[1]
for k,v in ipairs(array)
do
if(index<v)
then
index=v
end
end
return index
end
array={11,3,4,5,6,7,10}
print("数组的最大值是:"..func_Max(array))
Lua的函数还有一个很大的区别就是函数是可以作为参数的
实例:
func_Max = function(array)
if(array==nil)
then
print("数组为nil")
return
end
index=array[1]
for k,v in ipairs(array)
do
if(index<v)
then
index=v
end
end
return index
end
function func_Print(array,func_Max)
result = func_Max(array)
if(result==nil)
then
return
end
print("数组的最大值是:"..result)
end
array={11,3,4,5,6,7,10}
func_Print(array,func_Max)
多返回值
实例
function func_Test(num1,num2)
return num1/num2,num1%num2
end
print(func_Test(10,3))
可变参数
这个和C语言有点像,用三个点 ... 表示
实例
function func_paras(...)
local result=0
local count=select("#",...) --select("#",...)可以获得可变参数数量
local index=select(1,...) --select(1,...)获得的是可变参数中索引为1的值
for i,v in ipairs{...} --{...}表示由所有参数构成的数组
do
result=result+v
end
print("可变参数和为:"..result.."\n"..
"可变参数数量为:"..count.."\n"..
"可变参数索引为1的值为:"..index)
end
print(func_paras(3,4,5,6,7))
Lua运算符
算术运算符
和C#一样
关系运算符
和C#唯一的区别就是不等于了,Lua是 ~= C#是 !=
逻辑运算符
Lua中是 and or 和 not
and:逻辑与
or:逻辑或
not:逻辑非
和C#一样,只是写法不一样
假设: A为true,B为false
则 A and B 为 false
A or B 为 true
not (A and B) 为 true
其他运算符
... :连接两个字符串
# :返回一个字符串或表的长度
Lua字符串
就是字符串 三种写法 单引号 双引号和 [[]]
Lua数组
一维数组和多维数组
在Lua中,数组的索引是可以用字符串的,比如 table["wow"]=1,而且索引是从1开始,而不是其他语言的0
多维数组的创建
实例
array={}
for i=1,3 do
array[i]={}
for j=1,3 do
array[i][j]=i*j
end
end
for i=1,3 do
for j=1,3 do
print(array[i][j])
end
end
下一篇: Lua基础学习(三):https://mp.youkuaiyun.com/postedit/86677031