我喜欢在Roblox中制作游戏,而我在lua中编码。好的编码游戏我发现自己在问一个值是否等于另一个值很多,并且可以制作非常长的代码行并且可能非常重复。
例如:
如果x.ClassName =='衬衫'或
x.ClassName =='附件'或
x.ClassName =='裤子'或
x.ClassName ==' CharacterMesh'那么 - 做的事情
结束
这样做不仅可能非常凌乱,而且也只是一遍又一遍地要求同样的事情稍加修改。
我想知道是否有一种方式在卢阿询问一个值是否等于多个不同的单独值
例如:
如果x.ClassName ==('衬衫'附件& #39;或' Pants'或#39; CharacterMesh')然后
- 做事情结束
答案 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链更快。