У меня есть вложенное if
в Lua. У меня есть переменная во втором if
слое, которую я хочу использовать в первом слое.
Переменная npcSpecimen
.
if conditions then
local npcType = util.pickRandom(self.npcTypes)
local npcSpecimen = ""
if npcType == "spacebandit" then
local npcSpecimen = util.pickRandom(self.npcSpecies)
else
local npcSpecimen = util.pickRandom(self.npcSpeciesMutant)
end
local npcId = space.spawnNpc(spawnPosition, npcSpecimen, npcType)
end
Если записано таким образом, npcSpecimen
останется пустым, поскольку переменная, установленная в if npcType
, останется только в этом чанке. Таким образом, чтобы облегчить это, я мог бы вместо этого использовать глобальную переменную:
if npcType == "spacebandit" then
npcSpecimen = util.pickRandom(self.npcSpecies)
else
npcSpecimen = util.pickRandom(self.npcSpeciesMutant)
end
Однако, согласно документации , использование глобальной переменной не является наилучшей практикой и медленнее.
Итак, как лучше всего подойти к этому, чтобы я мог передать npcSpecimen
на npcId
?