lua 检查多个值是不是相等

Posted

技术标签:

【中文标题】lua 检查多个值是不是相等【英文标题】:lua checking multiple values for equailtylua 检查多个值是否相等 【发布时间】:2018-09-05 04:22:19 【问题描述】:

我喜欢在 Roblox 中制作游戏,并在 lua 中编写代码。好吧,编码游戏我发现自己经常问一个值是否等于另一个值,它可以编写很长的代码行并且可能非常重复。 例如:if x.ClassName == 'Shirt' or x.ClassName == 'Accessory' or x.ClassName == 'Pants' or x.ClassName = = 'CharacterMesh' 然后 -- 做事 结束 这样做不仅会非常混乱,而且只是一遍又一遍地询问相同的事情,并稍作修改。我想知道 lua 中是否有办法询问是否值等于多个不同的单独值例如:如果 x.ClassName == ( 'Shirt' or 'Accessory' or 'Pants' or 'CharacterMesh' ) then --做事结束

【问题讨论】:

【参考方案1】:

在 Lua 中没有本地方法可以做到这一点,但您可以实现一个辅助函数 set 来实现这一点。

function set(...)
   local ret = 
   for _,k in ipairs(...) do ret[k] = true end
   return ret
end

local classname = 'Shirt'
if set('Shirt', 'Accessory', 'Pants', 'CharacterMesh')[classname] then
   print('true')    
end

【讨论】:

【参考方案2】:

你可以这样做:

if string.match('/Shirt/Accessory/Pants/CharacterMesh/', '/'..x.ClassName..'/') then ... end 

但它不可能比你拥有的 if 链更快。

【讨论】:

以上是关于lua 检查多个值是不是相等的主要内容,如果未能解决你的问题,请参考以下文章

根据值列表检查变量是不是相等

如何检查Lua中的值是不是为空?

检查数组的所有值是不是相等

检查excel列值是不是相等

检查两个数组的值是不是相等且顺序相同[关闭]

== 检查布尔值是不是完全相等? - 爪哇