string_ext 模块中的 string.split() 不起作用。

我正在尝试在 Lua 中使用 string_ext 模块中的 split 方法。但是我得到了以下错误:

E:\apps\Lua\5.1\lua\string_ext.lua:261: attempt to index global 'list' (a nil va
lue)
stack traceback:
        E:\apps\Lua\5.1\lua\string_ext.lua:261: in function 'split'
        stdin:1: in main chunk
        [C]: ?

我的代码是:

require("string_ext")
print(string.split("An-example-string", "-"))

谢谢。

点赞
用户1190388
用户1190388

code.google.comstring_ext 代码中,函数 split 如下:

function split (sep, s)
  local pairs = list.concat ({0}, list.flatten (finds (s, sep)), {0})
  local l = {}
  for i = 1, #pairs, 2 do
    table.insert (l, sub (s, pairs[i] + 1, pairs[i + 1] - 1))
  end
  return l
end

他们使用的 list 模块也可以在这里找到。

2013-05-27 04:53:29
用户88888888
用户88888888

感谢大家的回答。我发现 string_ext 中的 split 方法需要使用 liststrbuf 模块。导入它们可以解决这个问题。但这似乎很愚蠢。难道一个库函数不应该导入和使用它自己所需的模块以使其自包含,而不是让库的使用者导入必要的模块吗?

2013-05-27 05:36:24