重新定义Lua中的变量类型

时间:2014-04-29 07:26:13

标签: lua lua-table

通过使用Python,我们可以将字符串重新定义为字典。

示例:

var = "testing"
var = {'body': var}
print var['body']
'testing'

Lua我想做同样的事。我想将字符串对象转换为表格。

我的尝试:

> var = "testing"
> var = {'body', var}
> print(var)
table: 0x12b2930
> for i,j in pairs(var) do
>> print(i)
>> print(j)
>> end
1
body
2
testing
> 

通过上面的例子,我可以用

获取测试字符串
> print(var[2])
testing
>

以上代码无法满足我的要求。我想用'testing'键存储值"body" 我想获取如下:

print(var['body'])
'testing'

请帮我解决这个问题

2 个答案:

答案 0 :(得分:6)

var = "testing"
var = {body = var}
print(var.body)
print(var["body"])

表构造中的逗号分隔表条目。因此,通过指定{"body", "testing"},您可以创建两个条目,其中键1,2分别等于“body”和“testing”,因为这是初始化顺序数组的方式。

如果要为每个值分配任意键,则必须使用=,如{key1 = "body", key2 = "testing"}中所示。现在,您可以通过两种方式访问​​这些元素。一个是对象,使用点:

tab1.key1

一个是数组/地图,使用方括号:

tab1["key1"]

在第二个例子中,你必须注意引号。如果您使用双引号,则直接访问密钥。如果不是(tab1[key1]),则使用存储在名为key1的变量中的值作为键说明符。

答案 1 :(得分:3)

最接近Python代码的Lua代码是

var = "testing"
var = {['body'] = var}
print(var['body'])
相关问题