【语法】
一、机制原理
一行代码拆解:local best = math.huge。求最小值的经典开场——先把答案哨兵架在正无穷上,之后任何真实数据都比它小,必然完成首次替换,省掉"拿第一个元素当初始值"的特判,也告别 999999999 这种一眼假的魔数。math.huge 是浮点体系里的无穷:加减乘正数仍得无穷,取负得负无穷(求最大值用它当哨兵),与 nil 的语义截然不同——nil 表示"没有",无穷表示"大到没有边界"。配置表里"无上限"的字段也用它表达,比较逻辑零特判。
二、错误写法
-- 错误:魔数哨兵,真数据超过就翻车
local best = 999999999
for _, v in ipairs(data) do
if v < best then best = v end
end
三、正确写法
local data = {42, 7, 19, 3, 88}
local best, idx = math.huge, 0
for i, v in ipairs(data) do
if v < best then
best, idx = v, i
end
end
local p = getplayerbyname("sen01")
sendmsg(p, 1, best .. "@" .. idx)
四、引擎验证
最小值 3 与下标 4 精确命中;空表输入时哨兵保持无穷,天然提示"没有数据"。
五、FAQ
问:huge 能参与排序吗?
答:能,它与任何有限数可比,排序无碍。
问:无穷除以无穷呢?
答:得非数 nan,别让哨兵混进除法。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏功能】 鞭炮的听觉冲击是数学的:一个响是点缀,一百个连响是洪流——火头沿着引信串一路烧下去,响声密集到连成一片。今天拆…
【游戏功能】 泥人张的手艺有句口诀:"三分捏七分怕"——三分靠手艺,七分怕捏坏。捏泥人的表现核心就是这个"怕":成形度越接近…
【游戏功能】 "这一刀下去,西瓜会变成几瓣?"——切水果的判定看似一刀两断,实则是刀光轨迹和果身的相交几何。今天拆切水果的表…
【游戏功能】 年会游戏的气氛组冠军永远是击鼓传花:鼓声一响所有人紧张,鼓声一停一个人社死。它的机制拆开看极简——花绕圈快传,…
【游戏功能】 拆一行代码: 巨石的速度每帧递增——滚石轰隆的压迫感全在这一行的累加里:它不是匀速滚来,是越滚越快的失控。今天…
【游戏功能】 输出榜第一的拳师被踢出了团本——理由是"挂着输出不干活"。他委屈:我一直在打啊。队长甩过战斗记录:你打的怪,护…