协助使用Lua函数。
2010-4-8 0:53:4
收藏:0
阅读:198
评论:3
如前所述,我对 Lua 相对较新,但我学得很快。上次在这里得到帮助时,它对我有很大帮助,我能够编写更好的脚本。现在我来到了另一个问题,我认为它会让我的生活变得更轻松。我不知道该如何使用函数,但我希望能找到一种方法来实现我想要做的事情。在下面,您将看到一个示例代码,我需要对其做些处理以剥离掉一些不必要的元素。是的,我意识到它并不高效,因此如果有人有更好的想法让它更高效,我会静听。我想创建一个包含此代码的函数,以便我可以轻松地调用任何变量(例如,stripdown(winds))。我感激提供任何帮助和教训的人。谢谢!
原文链接 https://stackoverflow.com/questions/2596890
点赞
stackoverflow用户41661
对于这样的函数,我非常喜欢使用对象语法:
function stripdown(winds)
winds = winds:gsub("%b<>","")
:gsub("%c"," ")
:gsub(" "," ")
:gsub(" "," ")
:gsub("^%s*(.-)%s*$", "%1)")
:gsub(" ","")
:gsub("/ ", "(")
return winds
end
这个版本与其他版本相比,效率并没有更高或更低,但是代码中的语法噪声更少,我发现更容易理解。
有一个技术上的原因,不仅仅是返回大表达式,这是因为 gsub
返回两个结果。
将它赋值给 winds
"调整"了(不想要的)第二个结果,并且函数仅返回字符串。
2010-04-08 02:20:35
stackoverflow用户282536
这应该稍微好一些:
function stripdown(str)
return (str:gsub("%b<>", "")
:gsub("[%c ]+", " ")
:gsub("^%s*(.-)%s*$", "%1")
:gsub(" ", "")
:gsub("/ ", "("))
end
将 3 个模式缩减为一个; 在返回表达式周围加上括号,可以将输出减少到 gsub 的第一个返回值。
2010-04-10 06:55:19
评论区的留言会收到邮件通知哦~
推荐文章
- 如何在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中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
将它转化为函数是容易的部分。
function stripdown(winds) winds = string.gsub(winds,"%b<>","") winds = string.gsub(winds,"%c"," ") winds = string.gsub(winds," "," ") winds = string.gsub(winds," "," ") winds = string.gsub(winds,"^%s*(.-)%s*$", "%1)") winds = string.gsub(winds," ","") winds = string.gsub(winds,"/ ", "(") return winds end
这个函数的编写确实会产生并且会抛弃很多中间字符串结果,这可能是一种比较昂贵的操作。值得注意的是要仔细研究 string.gsub() 的文档以及其 模式语言。它应该可以用更少的操作来完成你所需要的任务。