Lua表格 - 字符串表示

作为 Lua表格 - 允许的值和语法 的后续问题:

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

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会提示期望在第一个大括号处添加 "}"。如何实现一个包含空格和标点符号的字符串的表格?

点赞
用户4567755
用户4567755

根据 Lua 参考手册 - 3.1 - 词法约定 中的描述:

短字面字符串可以由匹配的单引号或双引号限定,并可以包含类似C的转义序列。

这意味着 Lua 中的短字面字符串是:

local foo = "I'm a string literal"

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

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

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

表构造函数的更详细描述可以在 3.4.9 - Table Constructors 中找到。它可以通过提供的示例来总结:

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

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

我还强烈鼓励您阅读一些基本教程,例如 15分钟学习Lua。它们应该为您提供有关您正在使用的语言的概述。

2020-01-10 23:23:33