4个参数及以下的函数功能
2018-3-17 1:44:3
收藏:0
阅读:118
评论:2
我必须写一个函数join(a,b,c,d),它最多可以接受4个字符串,并用逗号将它们连接在一起。当给定少于4个字符串时,函数仍应该工作,包括当只给定一个字符串作为参数时,只打印出一个没有逗号的字符串。然而,我只能让它在3个字符串的情况下工作
function join(a,b,c,d)
if b == nil then
print(a .. ", " .. c .. ", " .. d)
elseif c == nil then
print(a .. ", " .. b .. ", " .. d)
elseif d == nil then
print(a .. ", " .. b .. ", " .. c)
else
print(a .. ", ".. b .. ", " .. c .. ", " .. d)
end
end
我不知道如何让它接受少于3个参数,请帮忙
点赞
用户5675002
如果您只需要连接并打印这些字符串输入,甚至不需要给参数命名:
local function join(...)
print(table.concat({...}, ", ")
end
join("a")
join("a","b")
join("a","b","c")
join("a","b","c","d","e","f","blah-blah","as many as you want", "even more")
2018-03-17 07:37:17
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的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 代码?

你想达到的效果可以通过大多数编程语言所谓的“默认/可选参数”实现。然而,Lua似乎会有点不同 - 它只有在函数中实际使用参数(而不是将其包围在检查nil的条件中)时才真正需要该参数 - 所以你的方法实际上是正确的,只是缺少了一些条件语句的魔力。按以下方式重写你的程序,你会发现函数可以达到你的需求:
function join(a,b,c,d) io.write(a) if b ~= nil then io.write(", " .. b) end if c ~= nil then io.write(", " .. c) end if d ~= nil then io.write(", " .. d) end end join('test') join('test', 'test1') join('test', 'test1', 'test2') join('test', 'test1', 'test2', 'test3')在这里测试代码:https://jdoodle.com/a/qoc
关于你的版本的更改的重要说明:注意它只是if块,而不是if-else块。这是主要使“流程控制”能够检查最后3个参数中可能不存在的内容。你可能需要进一步阅读“流程控制”和“条件语句”的相关内容。
注:用
io.write替换了print,因为:io.write不会默认在其输出末尾附加换行符,因此你可以在同一行上打印出你的单词,仅用逗号和空格分隔。进一步参考: