【问题标题】: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
--做事
结束

【问题讨论】:

    标签: string if-statement properties lua roblox


    【解决方案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 链更快。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-08-24
        • 2016-09-27
        • 2017-06-17
        • 2023-01-19
        • 2021-07-16
        • 2015-10-23
        • 1970-01-01
        • 2010-11-16
        相关资源
        最近更新 更多