一个具有多个可接受值的变量。这在Lua中可能吗?
Posted
技术标签:
【中文标题】一个具有多个可接受值的变量。这在Lua中可能吗?【英文标题】:One variable with multiple acceptable values. Is this possible in Lua? 【发布时间】:2020-10-25 08:43:01 【问题描述】:对 Lua 很陌生。
我想用什么,因为它看起来最简单。
local IsJobs =
"job1",
"job2",
"job3"
我以为我可以使用 or ,但它并没有像我想象的那样工作。
这三个可以同时为真。他们都不需要在场,但他们中的任何人都可以被接受为 true 以允许访问。但是其他的必须在使用后保持真实。
我似乎无法让它工作。我已经尝试了一些事情来完成这项工作,但我一直想出空。程序加载并运行,但要么在第一个字符串处停止,不读取下一个字符串,要么根本不读取它们。教程似乎没有说我可以,但是当我尝试使用函数时,它也不会读取字符串。如果我将函数放在在线 Lua 编译器中并告诉它打印,它将打印名称或表名,但不会在表内读取。
三种使用方式。
if localxPlayer.job.name == IsJobs then
while localxPlayer.job.name == IsJobs do
function IsMechanic()
return localxPlayer.job.name == IsJobs
end
任何帮助将不胜感激。
【问题讨论】:
lua 中是否允许缩进?请在大括号和函数和结尾之间以及其他任何地方缩进任何内容 = 更易于阅读 - 对您和我们来说 - 理解并可能有所帮助。 据我所知,Lua 并不关心缩进,但我缩进了表中的变量@iAmOren 我将重新缩进所有...我很高兴 Lua 和大多数其他语言不关心缩进,因为它不会影响它们。但是,我、你和可能的回答者都不是计算机。缩进会帮助我们所有人——包括你——在阅读你的旧代码/别人的代码时——这是一个很好的做法。查找约定,选择一个,根据需要进行修改,然后尝试坚持下去。关于您的问题 - 很抱歉,我无法提供帮助。 这里不需要缩进。行数很少,如果你不懂语言,缩进也无济于事。 使用一个集合然后做IsJobs[localxPlayer.job.name]
作为你的条件
【参考方案1】:
localxPlayer.job.name == IsJobs
localxPlazer.job.name
是一个字符串(我猜)。 IsJobs
是一张桌子。所以这个表达式的计算结果总是false
。
localxPlayer
顺便说一句不是个好名字。看起来您忘记了空格并打算写local xPlayer
。由于 Lua 中的大多数值都是本地值,因此我宁愿为全局名称使用前缀。
正如 Nifim 在她的评论中建议的那样,你可以使用这样的东西:
local IsJobs =
job1 = true,
job2 = true,
job3 = true,
IsJobs["job2"]
然后是true
您也可以这样做:
local IsJobs = "job1", "job2", "job3"
local jobInList = false
for i,v in ipairs(IsJobs) do
if localxPlayer.job.name == v then
jobInList = true
end
end
【讨论】:
以上是关于一个具有多个可接受值的变量。这在Lua中可能吗?的主要内容,如果未能解决你的问题,请参考以下文章
Phpmyadmin 仅接受来自具有多个输入值的 json 数组中的一个条目