lua - string.match 抛出错误 : attempt to index field '?' (a string value)

标签 lua lua-table lua-patterns

我试图匹配文本文件中一行文本上的三段数据,并将它们存储在表格元素中。每行看起来像这样:

0.277719    0.474610    This
0.474610    0.721241    is
0.721241    1.063209    test

我有一个本地表来保存文本行,我正在尝试按如下方式分配数据片段。

local data = {}
local file = io.open( "audio/audio.txt", "r" )
local i = 1
for line in file:lines() do
    data[i] = line
    data[i].start, data[i].out, data[i].name = string.match( line, '(%S+)%s*(%S+)%s*(%S+)' )
    i = i + 1
end

data[i] = line 部分工作得很好。下一行没有。 我得到的只是 data[i].start, data[i].out, data[i].name = string.match( line, '(%S+)%s*(% S+)%s*(%S+)' ):

attempt to index field '?' (a string value)

我做错了什么?

最佳答案

错误在行

data[i] = line

此行使 data[i] 成为一个字符串变量,不能将其他字符串索引到它。将该行更改为:

data[i] = {}

一切正常。

关于lua - string.match 抛出错误 : attempt to index field '?' (a string value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23606479/

相关文章:

string - Lua 模式排除

c - 使用 Lua C API 选择带有选择器字符串的嵌套值

c++ - 使用 Luabind 实例化 lua 类

lua - 《Programming in Lua》第 108 页对 Lua 元表感到困惑

loops - 如何循环遍历表格并保持顺序?

Lua 脚本 - 在字符串中查找数字

c++ - 如何从 C++ 中的 Lua 函数获取返回表?

variables - 如何从一个变量读取另一个变量

dictionary - lua 5.2 改变表格中元素的顺序

lua - 字符串匹配 URI 与 Lua 模式