2013-05-26 17 views
0

我正嘗試使用lua中string_ext模塊的split方法。不過,我收到以下錯誤:lua string_ext模塊中的string.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", "-")) 

感謝。

+2

我會假設該模塊需要另一個名爲'list'的模塊。但我不知道'string_ext',所以我只能猜測。 – dualed

回答

0

謝謝大家的迴應。我發現string_ext中的split方法需要模塊liststrbuf。導入它們可以解決問題。但這似乎很愚蠢。不應該使用庫函數來導入它自己包含的模塊,而不是讓庫的用戶導入庫使用的必要模塊?

1

從上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模塊也可here