在Lua中使用String.format和gsub函数

以下是代码块的中文翻译:

function string:split(sep)
    local sep, fields = sep or ":", {}
    local pattern = string.format("([^%s]+)", sep)
    self:gsub(pattern,function (c)fields[#fields + 1] = c end)
    print(c)
    return fields
end
  1. string.format 函数将作为第二个参数的分隔符传递进来。为什么会这样?通常我们会将需要格式化的文本作为第二个参数传递进去。

  2. gsub 函数通常会替换一组给定的模式。那么 function(c) 在这里的作用是什么?它是如何被调用和使用的?在 function(c) 中,c 是从哪里来的?

点赞
用户1009479
用户1009479
  1. 在示例代码中,string.format()中的格式说明符是"([^%s]+)",其中%s需要一个字符串,因此第二个参数sep是一个字符串。

    例如,如果sep的值为,,则pattern变成了([^,]+)(一个或多个非逗号字符),这意味着函数string:split通过逗号(,)分割字符串。

  2. string.gsub()可以将第二个参数作为三种类型之一:字符串、函数或表格。当第二个参数为函数时,每次匹配出现时就会调用该函数,并按顺序将所有捕获的子字符串作为参数传递。更多详情请查看string.gsub()

2014-04-08 12:17:18