Lua:我需要在 if 中重复变量吗?
2021-12-28 12:41:13
收藏:0
阅读:322
评论:2
当我说
if var == "one" or var == "two" or var == "three" or var == "four" then
并且 var 总是相同的,我能否通过以下方式缩短它:
if var == "one" or "two" or "three" or "four" then
我需要使用括号吗?
原文链接 https://stackoverflow.com/questions/70507236
点赞
stackoverflow用户573255
我们可以利用表格(tables)。特别的,如果 some_table
中 不包含 some_key
,那么some_table[some_key]
会返回 nil
,这是一个假值。
例如:
if ({one=1, two=1, three=1, four=1})[var] then
我用了 1
,因为它打字很短,但你可以使用除了 nil
或 false
以外的任何值,因为这两个值是 Lua 中唯一的假值。
这将每次在求值时都创建一个新的表格,因此,如果你想经常检查它(例如在紧密的循环中),则可能值得在循环 外 创建表格:
local CONDITION = {one=1, two=1, three=1, four=1}
...
-- 在循环内:
if CONDITION[var] then
2021-12-28 12:57:45
评论区的留言会收到邮件通知哦~
推荐文章
- 如何在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 模式将字符串(嵌套数组)转换为真正的数组?
Lua 的
if
语句需要一个单一的值。该值会被转换为布尔值true
和false
,以决定if
语句的行为。因此,你可以想象你的
if
语句像这样:condition = var == "one" or var == "two" or var == "three" or var == "four" if condition then --... end
因此
if
并不能帮助我们重复执行某些操作,但是我们可以创建一个帮助函数,因为我们知道if
语句所期望的值。我们可以让这个函数接收一个值和一个值列表,将它与这些值进行比较,并在匹配时返回 true。这也正好是检查列表是否包含特定元素的方法,更容易找到。因此,给出一个简单的帮助函数:
function contains(t, x) for _, v in ipairs(t) do if v == x then return true end end return false end
我们可以这样改写
if
语句:if contains({"one", "two", "three", "four"}, var) then --... end