string.match throw error:尝试索引字段'?' (字符串值)

joe*_*4no 3 lua lua-patterns lua-table

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

0.277719    0.474610    This
0.474610    0.721241    is
0.721241    1.063209    test
Run Code Online (Sandbox Code Playgroud)

我有一个本地表来保存文本行,我正在尝试分配数据如下.

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
Run Code Online (Sandbox Code Playgroud)

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)
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

joe*_*4no 6

错误在行中

data[i] = line
Run Code Online (Sandbox Code Playgroud)

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

data[i] = {}
Run Code Online (Sandbox Code Playgroud)

一切正常.