Lua在表声明中使用数字作为键名的名称。

当键名以数字开头时,在JavaScript中,我们可以像这样定义类似于数组的对象:

var table = {
    '123.com': 'details'
    '456.net': 'info'
}

但是当我尝试在Lua5.1中使用这些代码时:

table = { '123.com' = 'info' }

它会抛出一个错误:

[string "local"]:1: '}' expected near '='

但这些代码在Lua中是可接受的:

table = {}
table['123.com'] = 'info'

我想知道这是否是Lua5.1中的一个bug。还是我漏掉了什么?

原文链接 https://stackoverflow.com/questions/9961995

点赞
stackoverflow用户569106
stackoverflow用户569106

当使用字面上的表构造器创建Lua表时,非标识符表索引应该用方括号括起来。例如:

table = { ['123.com'] = 'info' }

(来源:http://www.lua.org/pil/3.6.html

2012-04-01 05:08:08