1
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)在其中扮演什么角色gsub?它是如何在这里调用和使用的?从哪里来?c_function(c)

4

1 回答 1

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

    例如,如果sep值为",",则pattern变为([^,]+)(出现一次或多次非逗号),这意味着该函数正在用逗号 ( )string:split分割字符串,

  2. string.gsub()可以将三种类型作为第二个参数,字符串、函数或表。当它是一个函数时,每次匹配时都会调用它,所有捕获的子字符串按顺序作为参数传递。有关详细信息,请参阅string.gsub()

于 2014-04-08T12:17:18.260 回答