:Lua 中的字符串语法

:string syntax in Lua

我正在关注一个用 Lua 编写的在线 github 项目,遇到了一个我似乎不理解的变量声明。

    local pPlayerConfig :table = PlayerConfigurations[playerID];
    local statusMessage :string= Locale.Lookup(pPlayerConfig:GetPlayerName());

在这些情况下,:string / :table 是做什么的?那些像预定义类型一样覆盖普通字符串类型吗?

就标准 Lua 而言,这是一个编译错误。这很有可能是 Lua 的特殊版本,带有修改的编译器或其他东西。但是你必须调查具体的项目才能知道发生了什么(因为你忘记说这是什么项目,我们无法帮助你)。

此外,stringtable 是标准 Lua 库组件的名称,因此无论如何都不应该将它们用于局部变量名称。这可能是前缀 : 语法在 Lua.

的这个修改版本中旨在处理的内容

虽然这个问题已经有人回答了,但我可以解释一下它的意思。在 typed Lua(由 Roblox 使用)中,local identifier: type = value 表示名称为 identifier 且值为 value 的变量的类型为 type,但这仅适用当变量为 local 时。示例:

local name: string = "John"

local emptyTable: table = {}