String lua检查多个值是否相等

String lua检查多个值是否相等,string,if-statement,properties,lua,roblox,String,If Statement,Properties,Lua,Roblox,我喜欢用Roblox做游戏,用lua编写代码。对游戏进行编码时,我发现自己在问一个值是否等于另一个值,这会产生很长的代码行,并且会有相当多的重复 例如:如果x.ClassName=='Shirt'或x.ClassName=='associty'或x.ClassName=='Pants'或x.ClassName=='CharacterMesh',那么做点什么 end这样做不仅会非常混乱,而且只是一遍又一遍地要求对相同的内容进行轻微修改。我想知道lua中是否有一种方法可以询问一个值是否等于多个不同的

我喜欢用Roblox做游戏,用lua编写代码。对游戏进行编码时,我发现自己在问一个值是否等于另一个值,这会产生很长的代码行,并且会有相当多的重复

例如:

如果x.ClassName=='Shirt'或
x.ClassName=='associty'或
x.ClassName=='Pants'或
x.ClassName=='CharacterMesh',那么
做点什么

end

这样做不仅会非常混乱,而且只是一遍又一遍地要求对相同的内容进行轻微修改。
我想知道lua中是否有一种方法可以询问一个值是否等于多个不同的独立值

例如:

如果x.ClassName==('Shirt'或'association'或'Pants'或'CharacterMesh')然后
--做事情
结束

在Lua中没有本机的方法来做这件事,但是您可以实现一个helper函数

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

你可以这样做:

if string.match('/Shirt/Accessory/Pants/CharacterMesh/', '/'..x.ClassName..'/') then ... end 
但它不太可能比你拥有的if链快