📜  lua 打印所有元素表 - TypeScript (1)

📅  最后修改于: 2023-12-03 15:17:27.521000             🧑  作者: Mango

Lua 打印所有元素表 - TypeScript

在 Lua 编程中,我们经常需要打印所有元素表来方便调试,此时我们可以使用 TypeScript 来实现这个功能。

1. 实现代码

function printTable(t: object, indent: number = 0): void {
  const keys = Object.keys(t);
  keys.forEach((key) => {
    const value = t[key];

    if (typeof value === 'object') {
      console.log('\t'.repeat(indent) + key + ': {');
      printTable(value, indent + 1);
      console.log('\t'.repeat(indent) + '}');
    } else {
      console.log('\t'.repeat(indent) + key + ': ' + value);
    }
  });
}

2. 使用方法

local myTable = { 
  name = 'Tom', 
  age = 18,
  address = {
    city = 'Shanghai',
    country = 'China'
  }
}

printTable(myTable)

3. 效果展示

name: Tom
age: 18
address: {
    city: Shanghai
    country: China
}

4. 说明

上述代码中,printTable 函数接收一个对象和一个缩进量作为参数,使用 Object.keys 方法获取对象的所有键,遍历每一个键并获取其对应的值 value。如果该值为对象则递归调用 printTable 函数进行深度优先遍历,否则直接打印键值对。在打印时,我们使用了 '\t'.repeat(indent) 来确定打印时的缩进大小。

最后,在 Lua 中调用 printTable 函数并传入表即可打印出所有元素表。