如何在Lua中声明带有类型的变量

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

例如,int x = 4

如果不可能,那么是否至少有一种方式可以在变量之前显示类似“类型”的假内容,以便任何阅读代码的人都知道变量应该是什么类型?

例如,function addInt(int x=4, int y=5),但是 x/y 仍然可以是任何类型的变量?我发现在变量之前输入其类型比在函数上方放置注释更容易。

我之所以提出这个问题并不是为了将变量限制为特定的数据类型,而仅仅是为了能够在变量之前放置数据类型,无论它是否可用,让读者知道该变量应该是什么类型的,而不会出现错误。

点赞
用户1095108
用户1095108

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

Lua 整型类型

2013-12-12 21:21:06
用户365496
用户365496

你可以使用注释来实现:

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"})

不过,这并没有比注释提供任何优势。

2013-12-12 21:23:45
用户2226988
用户2226988

不是的。但我理解你的目标是改进阅读和编写函数调用时的理解能力。

声明参数的预期数据类型只有少许增加函数规范的作用。此外,一些函数参数是多态的,接受一个特定值、函数或表格,从中获取函数操作所需的上下文。例如,参见 string.gsub

阅读函数调用时,调用站点唯一知道的是将要作为函数调用的变量或字段的名称(有时会被称为“函数”名称),以及传递的实际参数的表达式。将参数表达式重构为具有命名的局部变量有助于提高可读性。

编写函数调用时,函数名称是关键。形式参数的名称也有帮助。但是,名称(如类型)并不构成很大程度的规范。最有帮助的是使用嵌入结构化文档并与 IDE 结合使用的方法,利用 IDE 推断出名称的上下文并执行内容辅助和提供文档的操作。

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

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

enter image description here

2013-12-15 04:56:41