深入浅出游戏算法(3)-lua脚本(6)
来源:互联网 发布:kindle软件更新 编辑:程序博客网 时间:2024/05/17 21:43
函数通过以下格式声明:
function 函数名
语句块
return 结果
end
结果可以是一个,下面函数计算最大值:
function maxnum(nums)
maxnum=nil
for i,v in ipairs(nums) do
if(maxnum==nil) then
maxnum=v
elseif (v>maxnum) then
maxnum=v
end
end
return maxnum
end
print(maxnum ({20,19,-23,44,68}))
dp@dp:~ % lua test2.lua
68
dp@dp:~ %
也可以是多个,下面函数同时返回最小和最大值:
dp@dp:~ % vim test.lua
function maxminnum(nums)
maxnum=nil
minnum=nil
for i,v in ipairs(nums) do
if(maxnum==nil) then
minnum=v
maxnum=v
end
if (v>maxnum) then
maxnum=v
end
if (v<minnum) then
minnum=v
end
end
return maxnum,minnum
end
print(maxminnum ({20,19,-23,-44,68,21,-80}))
dp@dp:~ % lua test.lua
68 -80
麦好的AI乐园博客所有内容是原创,如果转载请注明来源
http://blog.csdn.net/myhaspl/
unpack将table中的元素一个个提取出来。
比如:
> a={11,22,33}
> print(a)
table: 0x28428ec0
> print(a[0],a[1],a[3])
nil 11 33
> print(a[1],a[2],a[3])
11 22 33
> x=a
> print(x)
table: 0x28428ec0
> print(x[1],x[2],x[3])
11 22 33
> y1,y2,y3=unpack(a)
> print(y1..y2..y3)
112233
> print(y1)
11
> print(y2)
22
> print(y3)
33
可以通过“...”向函数传递多个参数
dp@dp:~ % vim test.lua
function maxminnum(...)
maxnum=nil
minnum=nil
for i,v in ipairs{...} do
if(maxnum==nil) then
minnum=v
maxnum=v
end
if (v>maxnum) then
maxnum=v
end
if (v<minnum) then
minnum=v
end
end
return maxnum,minnum
end
print(maxminnum (20,19,-23,-44,68,21,-80))
dp@dp:~ % lua test.lua
68 -80
通过传送table,并指定参数名称,达到指定实参的效果
dp@dp:~ % vim test.lua
function xllen(nums)
x=nums.x
y=nums.y
z=nums.z
return math.sqrt(x*x+y*y+z*z)
end
print(xllen{x=10,y=-9,z=5})
- 深入浅出游戏算法(3)-lua脚本(6)
- 深入浅出游戏算法(3)-lua脚本(3)
- 深入浅出游戏算法(3)-lua脚本
- 深入浅出游戏算法(3)-lua脚本(2)
- 深入浅出游戏算法(3)-lua脚本(4)
- 深入浅出游戏算法(3)-lua脚本(5)
- 深入浅出游戏算法(3)-lua脚本(7)
- 深入浅出游戏算法(3)-lua脚本(8)
- 深入浅出游戏算法(3)-lua脚本(9)
- 游戏脚本:Lua
- Lua游戏脚本开发1 -- 初始化Lua
- 深入浅出游戏算法(4)-unity3d算法(3)-移动摄像机
- Lua游戏脚本热更新机制
- 游戏服务器之lua脚本系统
- 关于lua脚本对于游戏的用途
- Lua游戏脚本热更新机制
- c++游戏中接入lua脚本系统
- LUA脚本在游戏中的应用场合
- python中if __name__ == '__main__': 的解析
- CString的使用效率
- 浅谈Overload和Override的区别
- centos 下面smplayer的安装--借用第三方源rpmforge
- NIO Selector
- 深入浅出游戏算法(3)-lua脚本(6)
- 2013.10u-boot移植之SD保存环境变量
- 【java】数组线性表的实现
- 源编码,执行编码,乱码问题
- 博客首记
- Perl多线程Parallel::ForkManager
- 成功必备的九种能力
- 线程堆栈
- 写给自己