Lua:我可以使用for循环来处理数组中所有“有时为零”的值吗?

问题描述 投票:0回答:1

我有以下代码:

  local overrideNode = xml.first(rootFromOverrideXML,"nodes/node[@identifier='"..nodeIdentifier.."']")
  local overrideRefNode
  if (elementRef) then overrideRefNode = xml.first(rootFromOverrideXML,"nodes/node[@identifier='"..elementRef.."']") end

在大多数情况下,这导致overrideNodeoverrideRefNode为零。但是,当在xml中找到某些内容时,任何一个都可以为非nil。

我必须在overrideRefNode之前处理overrideNode,所以我写道:

  for _,nodeVar in ipairs {overrideRefNode, overrideNode} do
    if (nodeVar) then

但是结果是,当两个都不为nil时,都将对其进行处理(两次for循环,正确),但是当overrideRefNode(第一个)为nil时,将不会处理overrideNode(第二个) (不正确),因此for循环为零运行,而应为一运行。

我如何循环处理一组两个字符串,每个字符串都可以为nil,但是必须处理每个非nil?

lua
1个回答
0
投票

一种解决方法是

  local overrides = {}
  overrides[1] = overrideRefNode
  overrides[2] = overrideNode
  for i = 1,2 do
    local nodeVar = overrides[i]
© www.soinside.com 2019 - 2024. All rights reserved.