与 lua table 索引有点冲突
Fighting a bit with lua table indexing
我是 Lua 的新手,想了解以下语法:
init_state_global = some_integer
rnn_state = {[0] = init_state_global}
我的 Pythonic 解释是第一个元素的索引为 0,并且该元素的值等于变量 init_state_global。
然而,当我这样做时
print(rnn_state[0])
我明白了
>> nil
谁能帮我解释一下:
rnn_state = {[0] = init_state_global}
在 Lua 中,您在表达式 set(=) 之前和数组名称之后执行此操作。此外,Lua 使用基于 1 的索引
init_state_global = some_integer
rnn_state = {}
rnn_state[1] = init_state_global;
也许你忘了声明一个变量:
init_state_global = 5
rnn_state = {[0] = init_state_global}
print(rnn_state[0])
事实证明这比我想象的要容易。
即使 lua 从 1 开始索引,您也可以将索引临时设置为零。
所以
rnn_state = {[0] = init_state_global}
就是这个意思,
rnn_state[0] = init_state_global
不过,我上面说了
print(rnn_state[0]) was equal to
>> nil
那是因为我忘了声明变量(在我的代码中,而不是在初始线程中)
init_state_global = some_integer
:(
所以如果你正确声明了变量,下面的语句
print(rnn_state[0])
将return
>> some_integer
如果您之前声明过
init_state_global = some_integer
另一件事(对于我们这些习惯 python 列表的人来说可能并不明显)是
rnn_state = {}
rnn_state[0] = 4
与
相同
rnn_state = {[0] = 4}
我是 Lua 的新手,想了解以下语法:
init_state_global = some_integer
rnn_state = {[0] = init_state_global}
我的 Pythonic 解释是第一个元素的索引为 0,并且该元素的值等于变量 init_state_global。
然而,当我这样做时
print(rnn_state[0])
我明白了
>> nil
谁能帮我解释一下:
rnn_state = {[0] = init_state_global}
在 Lua 中,您在表达式 set(=) 之前和数组名称之后执行此操作。此外,Lua 使用基于 1 的索引
init_state_global = some_integer
rnn_state = {}
rnn_state[1] = init_state_global;
也许你忘了声明一个变量:
init_state_global = 5
rnn_state = {[0] = init_state_global}
print(rnn_state[0])
事实证明这比我想象的要容易。
即使 lua 从 1 开始索引,您也可以将索引临时设置为零。
所以 rnn_state = {[0] = init_state_global}
就是这个意思,
rnn_state[0] = init_state_global
不过,我上面说了
print(rnn_state[0]) was equal to
>> nil
那是因为我忘了声明变量(在我的代码中,而不是在初始线程中)
init_state_global = some_integer
:(
所以如果你正确声明了变量,下面的语句
print(rnn_state[0])
将return
>> some_integer
如果您之前声明过
init_state_global = some_integer
另一件事(对于我们这些习惯 python 列表的人来说可能并不明显)是
rnn_state = {}
rnn_state[0] = 4
与
相同rnn_state = {[0] = 4}