lua检查多个值是否为equailty

时间:2018-03-26 22:03:46

标签: string if-statement properties lua roblox

我喜欢在Roblox中制作游戏,而我在lua中编码。好的编码游戏我发现自己在问一个值是否等于另一个值很多,并且可以制作非常长的代码行并且可能非常重复。

例如:

如果x.ClassName =='衬衫'或
x.ClassName =='附件'或
x.ClassName =='裤子'或
x.ClassName ==' CharacterMesh'那么 - 做的事情
结束
这样做不仅可能非常凌乱,而且也只是一遍又一遍地要求同样的事情稍加修改。
我想知道是否有一种方式在卢阿询问一个值是否等于多个不同的单独值

例如:

如果x.ClassName ==('衬衫'附件& #39;或' Pants'或#39; CharacterMesh')然后
- 做事情结束

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:-1)

你可以这样做:

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

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