**This is an old revision of the document!**

Lua 代码约定

译者注:本文档的部分/全部翻译来自 MCBBS,由于 MCBBS 当前(2022.8)正在进行系统维护,暂无法联系原译者“Tony🐴”,因此这是未授权的转载。

  • 请上下文风格相同。
  • 缩进使用两个空格。争取每次缩进都是正确的。
  • 尝试将单行代码限制在80字符以内。
  • 不要在大括号/花括号间、及其中的内容间增加不必要的空格。
  • 即使没有必要,也在函数调用的时候使用括号。
  • 变量名只代表它们自己,不包含类型,即不要用匈牙利命名法。
  • 一个好习惯:按字母顺序进行请求(强迫症!)
  • 请放心的多注释您的代码。加载大量注释使用的内存很快都会被释放。
  • 如果一定要验证参数,请使用内建的 checkArg 函数。错误消息可读性提高是好事!它的使用方法是 checkArg(n, value, type1,...),n 是参数的个数,value 是参数的值,type1 和后面的内容就是接受的参数类型,通过 type(value) 获得。错误信息中使用的数字会是这样的:“bad argument #n (type1 expected, got type(value))”。所以,举个例子,要求第一个参数是数字时,你可以使用 checkArg(1, arg, "number")

不好的代码:

function f(sArg1 , ... )
   assert(type(sArg1)== "string", "me wants a strign!")
    if sArg1 then
        local nResult = 1
        -- 做更多工作
        return nResult
  end
end
if  f ( "a" )  ==1 then
print"asd"
end

好代码:

function f(name, ...)
  checkArg(1, name, "string")
  if name then
    local result = 1
    -- 我们将非欧利几得空间的 B-样条算法外推来得出潜在的失败概率
    return result
  end
end
if f("a") == 1 then
  print("asd")
end

目录

附加模组 附属模组 Computronics(英文)
支持 OC 的模组 Thut's Concrete
其他语言 英文(English)