Lua 的简单函数:从传递给它的参数中随机选择一个。
2014-1-31 22:19:25
收藏:0
阅读:132
评论:2
我希望有这样的功能:
print(randomParameter(1,2,3))
-- 随机选择一个参数,输出 1、2 或 3
我尝试使用 func(...) 参数,但当传递多个参数时,似乎无法使用 ARG 表。我尝试了以下方法:
function hsv(...)
return arg[math.random(1,#arg)] -- 也尝试:return arg[math.random(#arg)]
end
print(hsv(5,32,7))
我甚至尝试使用 rand 函数将 #arg 放入变量中,还制作了一个 for 循环,连续添加变量来计数表格。但仍然无法工作。
我记得之前做过这个,但看起来不同。有人能帮忙吗?谢谢!
点赞
用户793615
function randomNumber(...)
t = {...}
return t[math.random(1,#t)]
end
print(randomNumber(1, 5, 2, 9))
输出:
> 1 or 5 or 2 or 9
功能: 通过在传入的可变参数范围内随机选取一个数并返回。
实现: 将传入的可变参数存储在一个表中(t),然后通过math.random函数生成一个随机索引,最后返回表中对应的值。
2014-02-02 22:18:10
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
稍微解释一下@EgorSkriptunoff的答案(他需要改变他在评论中提供答案的习惯):
return (select(math.random(select('#',...)),...))。...允许函数中访问可变参数select('#',...)返回传入可变参数的数量math.random(select('#',...))给出一个介于1和传入参数数量之间的随机数select(math.random(select('#',...)),...)从传入的参数中选取具有指定随机数的索引的元素。另一个解决方案使用
arg = {...}在将nil包括为参数时几乎与上述方法相同,在参数数量方面存在微妙的差别:> function f(...) print(#{...}, select('#', ...)) end > f(1,2,3) 3 3 > f(1,2,nil) 2 3 > f(1,2,nil,3) 2 4如您所见,
select('#',...)产生更精确的结果(这是运行LuaJIT,但据我所记,Lua 5.1产生类似的结果)。