晚上好 你能帮我解决这个问题吗?
错误:race / util_server.lua:440:尝试索引本地' self' (零值)
function string:split(separator) if separator == '.' then separator = '%.' end local result = {} for part in self:gmatch('(.-)' .. separator) do result[#result+1] = part end result[#result+1] = self:match('.*' .. separator .. '(.*)$') or self return result end
答案 0 :(得分:0)
你可能认错了。
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