2016-04-08 9 views
1

I've got this UTF-8 module for Lua.Bu modül neden kayıtlı işlevlerin bir kısmına sahip?

şey require() eğer, sadece ilk iki fonksiyonları (charbytes ve len) mevcuttur olmasıdır. Geri kalan, tanımlanmasına rağmen kullanılamaz.

Ben çok basit bir komut dosyası ile bu test: Bu döndüren utf8 = require("utf8") print(utf8.len, utf8.sub)

: function: 0xsomeaddress nil. Neden?

+0

Benim için iyi çalışıyor. modül kodu iyi görünüyor. – Piglet

+0

@Piglet Sorunu, Lua 5.3 gemisinin ve 'utf8' modülünün kendi başlarına oluşturduğunu ve temel olarak '(' utf8 ')' 'özel modülüm yerine modülün gönderilmesini gerektirdiğini buldum. – Zatherz

+0

Dosyayı başka bir şeye yeniden adlandırın, örneğin: my_utf8.lua – tonypdmtr

cevap

3

Lua 5.3 bir utf8 modülüne sahiptir ve zaten yüklenmiş, dolayısıyla require("utf8") aslında modüller ile hiçbir şey yapmıyor.

+2

"yüksek öncelik" değil, "zaten yüklü". Eğer "boşaltma" yaparsanız (veya ilk etapta asla yüklemezseniz), dahili modül harici olarak çalışır. –

+0

, modüllerin birden çok kez yüklenmesini önler. bu nedenle, yerleşik modülü yeniden yüklemez. utf8 zaten yüklü olduğu için modülünüzü yüklemeyi reddeder. detaylar için Lua ref'deki Modüller bölümüne bakınız. – Piglet

+0

teşekkürler, ben düzenledim – Zatherz