我有一个嵌套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
Run Code Online (Sandbox Code Playgroud)
如果以这种方式编写,npcSpecimen则将保持为空,因为 中设置的变量if npcType仅保留在该块中。因此,为了缓解这个问题,我可以使用全局变量来代替:
if npcType == "spacebandit" then
npcSpecimen = util.pickRandom(self.npcSpecies)
else
npcSpecimen = util.pickRandom(self.npcSpeciesMutant)
end
Run Code Online (Sandbox Code Playgroud)
然而,根据文档,使用全局变量不是最佳实践,而且速度较慢。
那么,解决这个问题的最佳方法是什么,以便我可以传递npcSpecimen到npcId?