lua表-字符串表示形式

问题描述 投票:0回答:1

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

我需要一个将大数字等同于字符串的表。要注意的是似乎不允许使用带标点符号的字符串:

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会抱怨“}”在行处关闭“ {”。如何使用包含空格和标点符号的字符串实现表?

lua wireshark-dissector
1个回答
0
投票

按照Lua Reference Manual - 3.1 - Lexical Conventions

短文字字符串可以通过匹配单引号或双引号来定界,并且可以包含(...)类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参考手册,它确实是一个了不起的助手。

我也强烈建议您阅读一些基本教程,例如Learn Lua in 15 minutes。他们应该为您提供您要使用的语言的概述。

© www.soinside.com 2019 - 2024. All rights reserved.