从列表或哈希中一致地获取项目数量

get amount of items consistently from list or hash

我正在解析 XML 并收到一个哈希值或更多哈希值列表,请参阅:

qore -l xml -nX 'parse_xml("<root> <row><id>1</id><name>foo</name></row> <row><id>2</id><name>bar</name></row></root>")'

qore -l xml -nX 'parse_xml("<root> <row><id>1</id><name>foo</name></row></root>")'

我需要知道解析了多少行,但是调用 elements.size() returns 列表(项目数量)和散列(键数量!)的不同值.

有没有不需要将所有值复制到新的软列表变量的方法来做到这一点?

hash xml = prase_xml("..."); softlist tmp = xml.root.row; # makes unnecessary copy! tmp.size();

谢谢 O.

使用 <value>::lsize() pseudo-method,其中 returns:

  • 列表的元素数量
  • 1 所有其他值
  • 0 对于 NOTHING

例如:

hash<auto> xml = parse_xml(xmlstr);
int size = xml.root.row.lsize();