2016-09-29 54 views
2

我試圖通過使用gmatch與%S+分割字符串到表中。不過,我跑進了錯誤:嘗試索引本地「參數」(函數值)

Attempt to index local 'args' (a function value)

這裏有三行代碼我認爲有問題:

print(msg) 
local args = string.gmatch(msg, "%S+") 
print(args[1]) 

所以第一線print(msg)只是打印普通的字符串,因爲它應該。第二行假設用空格分隔該字符串,並將表存儲在args中。第三行假設打印表中的第一個值,但是它卻給了我上面顯示的錯誤。謝謝。

回答

5

string.gmatch不會像您期望的那樣返回結果;它會返回一個迭代器(一個特殊函數),然後您可以在循環中使用它來獲取所需的值。這就是爲什麼當您嘗試索引返回的函數時出現此錯誤的原因。

有關如何使用gmatch獲取值的示例,請查看the documentationthis SO question

+0

非常感謝! – Frosty