Lua替代“类型”

时间:2013-10-10 06:21:17

标签: lua

很多时候我需要一个变量来表达某事物的类型,但是你可能知道它也是Lua中一个函数的名称。

什么是正确的解决方法?我想到了:

  1. 无论如何都要使用它。由于我几乎只使用本地值,因此类型函数不会被覆盖但暂时无法访问(当用作参数名称时也会出现问题)。
  2. 使用“type”这个词的同义词(可能是最简单的解决方案),但我无法想出任何好的东西。
  3. 使用大写字母,前缀/后缀,如TypeTYPE_type,但它违反了目前使用的代码样式。
  4. 将类型函数另存为其他内容并在结束时将其恢复。
  5. 添加一个名为'{1}}的全局引用,例如'typeof',这样当在本地使用type时,我仍然可以使用typeof。
  6. 使用类型函数的不同名称重新编译Lua(不,谢谢!)

2 个答案:

答案 0 :(得分:2)

唯一明智的选择是#2和#3,选择其中一个通常是要求麻烦。

请记住,命名约定就是惯例。在特殊情况下,违反惯例以使代码更具可读性是一件好事。

另一方面,重载/更改/摆弄标准库名称要差得多,尤其是因为你这样做只是为了避免一些你不太喜欢标识符的名字。

虽然它们不被视为具有与C相同的强规则的保留标识符(唯一真正保留的名称是begins with an underscore followed by a capital letter),但Lua标准库名称应被视为保留,除非您有非常令人信服的理由否则,特别是在大型应用中。保留命名约定并不是一个令人信服的理由。

答案 1 :(得分:1)

通常我会为此目的使用kind这个词。