Lua中的:string语法

我正在跟随一个在线的Github项目编写Lua代码,遇到了一个变量声明,我似乎无法理解。

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

在这些情况下,:string / :table是什么?它们是否像预定义类型一样覆盖了字符串的常规类型?

点赞
用户734069
用户734069

根据标准 Lua,这是一个编译错误。但很可能这是一个带有修改编译器之类的特殊版本 Lua。但是,您需要调查具体的项目以了解发生了什么(因为您没有说这是哪个项目,我们无法帮助您)。

此外,stringtable是标准 Lua 库组件的名称,因此不应该用作局部变量名称。这可能是在这个修改过的 Lua 版本中所使用的前缀 : 语法要处理的问题。

2021-04-16 14:11:45
用户15459779
用户15459779

虽然这个问题已经有了答案,但我可以解释它的意思。在 Roblox 中使用的 Typed Lua 中,local identifier: type = value 表示变量 identifier 的值为 value,类型为 type,但这仅适用于变量为 local 的情况。例如:

local name: string = "John"

local emptyTable: table = {}

2021-04-17 05:07:11