Lua中“type”的替代方案

许多时候,我需要一个变量来表示某些东西的类型,但是你可能知道它也是 Lua 中的一个函数的名称。

有什么合适的解决办法吗?我考虑了以下几点:

  1. 仍然使用它。由于我几乎只使用本地变量,type 函数没有被覆盖,但在用作参数名称时也会出现暂时无法访问的问题。
  2. 使用“type”这个词的同义词(可能是最简单的解决方案),但我想不出什么好办法。
  3. 使用大写,前缀/后缀,例如 TypeTYPE_type,但它违反了迄今为止使用的代码风格。
  4. 将 type 函数保存为其他名称,并在最后恢复它。
  5. 添加一个名为“typeof”的全局引用,以便当本地使用 type 时仍然可以使用 typeof。
  6. 使用不同的名称重新编译 Lua 中的 type 函数(谢绝!)
点赞
用户204011
用户204011

通常我用 kind 这个词来表达这个意思。

2013-10-10 10:11:39
用户2633423
用户2633423

唯一明智的选择是#2和#3,选择其他选项通常会引起问题。

请记住,命名约定只是约定。在特殊情况下,打破约定以使代码更易读是一件好事。

另一方面,重载/更改/操纵标准库名称要糟糕得多,特别是因为您这样做只是为了避免一些您不太喜欢的标识符名称。

虽然它们不像C语言那样具有同样强的保留标识符规则(唯一真正保留的名称是那些以下划线后跟大写字母开头的名称),但是Lua标准库名称应该被视为保留名称,除非您有极端充分的理由进行其他操作,特别是在大型应用程序中。保留命名约定不是如此充分的理由。

2013-10-10 16:44:30