记录Lua中使用的类型的惯例是什么?

时间:2014-09-04 12:29:54

标签: lua conventions typing

我来自强类型世界,我想写一些Lua代码。我应该如何记录什么类型的东西? Lua当地人做什么? Hungarian notation?还有别的吗?

例如:

local insert = function(what, where, offset)

我们不可能一眼就看出我们是在谈论字符串还是表格。

我应该

local sInsert = function(sWhat, sWhere, nOffset)

-- string what, string where, number offset, return string
local insert = function(what, where, offset)

或其他什么?

局部变量怎么样?表条目怎么样(例如someThing.someProperty)?

2 个答案:

答案 0 :(得分:3)

有关社区(或特定社区)中Lua风格的想法和意见的参考,请阅读:LuaStyleGuide

最接近强制风格的是LuaDoc使用的格式,因为它是LuaFileSystem等高端项目使用的相当流行的文档生成器。

答案 1 :(得分:0)

Lua只有七种类型。

以下是一些惯例(其中一些可能听起来有点明显;对不起):

  • 听起来像字符串的任何内容都应该是字符串:street_addressrequest_method。如果您不确定可以添加_name(或任何其他明确表明具有实质意义的后缀):method_name
  • 听起来像数字的任何内容都应该是一个数字:masstemperaturepercentage。如有疑问,请添加numberamountcoefficient或其他任何内容:number_of_childrenuser_id。名称ni通常会提供给数字。如果数字必须是正数或自然数,请在函数顶部进行断言。
  • 布尔参数可以是形容词(colddirty)或is_<adjective>is_wetis_ready)。
  • 任何听起来像动词的东西都应该是一个功能:consumecheck。如果您需要进一步澄清,可以添加_function_callback_fupdate_functionpost_callback。单个字母f经常代表一个函数。通常你应该只有一个类型函数的参数(建议把它放在最后)
  • 听起来像集合的任何内容都应该是一个表:childrenwordsdictionary。人们通常不区分类似数组的表和类似字典的表,因为两者都可以用pairs进行解析。如果您需要指定表是数组,则可以在名称末尾添加_array_sequence。字母t通常表示表格。
  • 不经常使用协同程序;您可以遵循与功能相同的规则,也可以将_cor添加到其名称中。
  • 任何值都可以是nil
    • 如果它是可选值,请在函数顶部对其进行初始化:options = options or {}
    • 如果它是强制值,请发出断言(或返回错误):assert(name, "The name is mandatory")