如何使用Lua中的类型声明变量

时间:2013-12-12 21:16:21

标签: oop variables types lua

是否可以在Lua中创建特定类型的变量?

E.g。 int x = 4

如果这是不可能的,至少有一些方法可以在变量之前显示一个虚假的“类型”,这样任何读取代码的人都会知道变量所谓的是什么类型的?

E.g。 function addInt(int x=4, int y=5),但x / y仍然可以是任何类型的变量?我发现在它之前键入变量的类型要容易得多,而不是在函数上方放置注释,让任何读者知道它应该是什么类型的变量。

我要问的唯一原因是不要将变量限制为特定的数据类型,而只是为了能够在变量之前放置数据类型,无论它是否做任何事情,让读者知道它应该是什么类型的变量而不会出错。

3 个答案:

答案 0 :(得分:3)

您可以使用评论执行此操作:

local x = 4 -- int

function addInt(x --[[int]],
                y --[[int]] )

您可以使用以下内容从其他评论中使用语法a = int(5)

function int(a) return a end
function string(a) return a end
function dictionary(a) return a end

a = int(5)
b = string "hello, world!"
c = dictionary({foo = "hey"})

尽管如此,这并没有给评论带来任何好处。

答案 1 :(得分:0)

我能想到的唯一方法就是在C中创建一个自定义类型。

Lua Integer type

答案 2 :(得分:0)

没有。但我理解你的目标是在阅读和编写函数调用时提高理解力。

说明参数的预期数据类型在给出函数规范方面只增加了一点点。此外,一些函数参数是多态的,接受特定值,或从中获取函数操作的上下文的值的函数或表。例如,请参阅string.gsub

在读取函数调用时,调用站点唯一已知的是变量或字段的名称,其值作为函数调用(有时读作函数的“名称”)并传递表达式作为实际参数。有时将参数表达式重构为命名局部变量以增加可读性是有帮助的。

编写函数调用时,函数名称是key。形式参数的名称也很有用。但是,名称(如类型)并不包含很多规范。最大的帮助来自与IDE结合使用的嵌入式结构化文档,它可以推断出名称的上下文,并执行内容辅助和可用文档的演示。

luadoc就是这样一个文档系统。您可以为声明的函数编写luadoc。

Eclipse Koneki LDT就是这样一个IDE。由于Lua的动态特性,这是一个难题,因此LDT并不总是像人们想的那样有用。 (要明确的是,LDT不使用luadoc;它发展了自己的嵌入式文档系统。)

enter image description here