Lua - util_server.lua:440 尝试索引本地“自我”(零值)
Posted
技术标签:
【中文标题】Lua - util_server.lua:440 尝试索引本地“自我”(零值)【英文标题】:Lua - util_server.lua:440 attempt to index local 'self' (a nil value) 【发布时间】:2014-10-08 15:38:55 【问题描述】:晚上好 你能帮我解决这个问题吗?
错误:race/util_server.lua:440:尝试索引本地“self”(零值)
函数字符串:拆分(分隔符) 如果分隔符 == '.'然后 分隔符 = '%.' 结尾 本地结果 = 对于部分 self:gmatch('(.-)' .. separator) 做 结果[#result+1] = 部分 结尾 结果[#result+1] = self:match('.*' .. 分隔符 .. '(.*)$') 或 self 返回结果 结尾【问题讨论】:
第440行是哪一个? Error while trying to call a class method: attempt to index local 'self' (a nil value) - Lua的可能重复 【参考方案1】:你可能说错了。
function string:split(separator)
简写为:
function string.split(self, separator)
给定一个字符串和分隔符:
s = 'This is a test'
separator = ' '
你需要这样称呼它:
string.split(s, separator)
或者:
s:split(separator)
如果你这样称呼它:
s.split(separator)
您未能为 self
参数提供值。
旁注,您可以像这样更简单地写split
:
function string:split(separators)
local result =
for part in self:gmatch('[^'..separators..']+') do
result[#result + 1] = part
end
return result
end
这样做的缺点是不能使用多字符串作为分隔符,但优点是可以指定多个分隔符。例如,您可以去掉句子中的所有标点符号,只提取单词:
s = 'This is an example: homemade, freshly-baked pies are delicious!'
for _,word in pairs(s:split(' :.,!-')) do
print(word)
end
输出:
This
is
an
example
homemade
freshly
baked
pies
are
delicious
【讨论】:
一张便条。在电话中s.split(sep)
self
是 sep
所以它不是 nil(如果 sep 不是 nil)以上是关于Lua - util_server.lua:440 尝试索引本地“自我”(零值)的主要内容,如果未能解决你的问题,请参考以下文章