0

luasplitでモジュールのメソッドを使用しようとしています。string_extしかし、次のエラーが発生します。

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", "-"))

ありがとう。

4

2 に答える 2

2

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-27T04:53:29.517 に答える
1

皆様、ご回答ありがとうございます。splitのメソッドにstring_extはモジュールlistとが必要であることがわかりましたstrbuf。それらをインポートすると、問題が解決します。しかし、これはばかげているようです。ライブラリ関数は、ライブラリが使用する必要なモジュールをライブラリのユーザーにインポートさせるのではなく、自己完結型にするために使用するモジュールをインポートするべきではありませんか?

于 2013-05-27T05:36:24.157 に答える