lua 表 - 字符串表示

lua tables - string representation

作为 lua tables - allowed values and syntax 的后续问题:

我需要一个 table 将大数字等同于字符串。问题似乎是不允许带有标点符号的字符串:

local Names = {
   [7022003001] = fulsom jct, OH
   [7022003002] = kennedy center, NY
}

但引号也不是:

local Names = {
   [7022003001] = "fulsom jct, OH"
   [7022003002] = "kennedy center, NY"
}

我什至试过没有空格:

local Names = {
   [7022003001] = fulsomjctOH
   [7022003002] = kennedycenterNY
}

加载此模块时,wireshark 抱怨“}”应该在第 行关闭“{”。如何使用包含空格和标点符号的字符串实现 table?

根据Lua Reference Manual - 3.1 - Lexical Conventions

A short literal string can be delimited by matching single or double quotes, and can contain the (...) C-like escape sequences (...).

也就是说Lua中的短文字串是:

local foo = "I'm a string literal"

这与您的第二个示例相符。它失败的原因是因为它缺少 table 成员之间的分隔符:

local Names = {
   [7022003001] = "fulsom jct, OH",
   [7022003002] = "kennedy center, NY"
}

您还可以在最后一个成员之后添加尾随分隔符。

table 构造函数的更详细描述可以在 3.4.9 - Table Constructors 中找到。可以通过此处提供的示例进行总结:

a = { [f(1)] = g; "x", "y"; x = 1, f(x), [30] = 23; 45 }

我真的非常推荐使用 Lua 参考手册,它是一个了不起的帮手。

我也强烈建议您阅读一些基础教程,例如Learn Lua in 15 minutes。他们应该向您简要介绍您尝试使用的语言。