openlang

lua 把表的键收集到另一个表中

我想知道怎样取得 lua 表中的所有键。比如,假设我有这样一个表。

entries = {}
entries[2] = 'c'
entries[4] = 'd'
entries[7] = 'h'

我想得到的是类似下面这样的表。

indices = {2, 4, 7}
从英语翻译查看原文

后续讨论 2

顺着彼此的依据读下去
  1. 固定链接
    local indices={}
    local count=0
    for index, value in pairs(entries) do
      count=count+1
      indices[count]=index
    end

    注意,indices 中的顺序没有保证。如果希望键按顺序排列,就用 table.sort(indices) 对 indices 排序。

    从英语翻译查看原文
  2. 固定链接
    local function collect_indices(source)
      local result={}
      for index,_ in pairs(source) do
        table.insert(result, index)
      end
      return result
    end

同一个问题的其他角度

  1. 在 Godot 3.3 的 GDScript 中怎样随机选择枚举项而不用逐项列出?

    这是我在 GDScript 中使用的枚举声明。 我想随机选择一个枚举变体,而不用列出所有可能的变体。这样以后增加变体时,就不必修改负责随机选择的代码。 我尝试过下面这种方法。 还有这一种。 两种都失败了。一个返回 Null,另一个报告 "Invali…

    回复 2最近活动 gdscript
  2. Nim 求余语法

    Nim 中怎样表示求余运算? cell % 7 == 0 会给出 undeclared identifier: '%' 这个错误 Google 搜索和查看 SO 都没找到答案。

    回复 2最近活动 nim
  3. 从 APL 函数返回结果

    怎样才能让函数在执行结束后返回一个值? 例如我有这样的代码。 ROUTINE N ? N ⍴ 12 //它会生成 N 个从 1 到 12 的随机值 (N 是函数的参数)。 我只是想知道怎样拿到函数的结果,然后比如把这个结果传给另一个函数。 谢谢大家的…

    回复 2最近活动 apl