2016-04-08 16 views
1

I've got this UTF-8 module for Lua.Warum enthält dieses Modul nur einen Teil der registrierten Funktionen?

Die Sache ist, dass, wenn require() es, nur die ersten beiden Funktionen (charbytes und len) verfügbar sind. Der Rest ist nicht verfügbar, obwohl er definiert wurde.

Getestet habe ich diese mit einem sehr einfachen Skript: utf8 = require("utf8") print(utf8.len, utf8.sub)

Es gibt: function: 0xsomeaddress nil. Warum das?

+0

funktioniert gut für mich. Modulcode sieht gut aus. – Piglet

+0

@Piglet Ich habe das Problem zu sein, dass Lua 5.3 Schiffe und 'utf8' Modul selbst, und grundsätzlich' require ("utf8") 'lädt das Modul ausgeliefert, anstatt meine benutzerdefinierte. – Zatherz

+0

Benennen Sie die Datei einfach in etwas anderes um, zB my_utf8.lua – tonypdmtr

Antwort

3

Lua 5.3 hat ein utf8 Modul und es ist bereits geladen, so require("utf8") tut eigentlich nichts mit den Modulen.

+2

Nicht "höhere Priorität", sondern "bereits geladen". Wenn Sie das eingebaute Modul "entladen" (oder nie laden), funktioniert das externe Modul. –

+0

require vermeidet das mehrfache Laden von Modulen. Es lädt das eingebaute Modul also nicht neu. Es wird einfach das Laden Ihres Moduls verweigern, da utf8 bereits geladen ist. Weitere Informationen finden Sie im Abschnitt "Module" in der Lua-Referenz. – Piglet

+0

danke, ich habe es bearbeitet – Zatherz

Verwandte Themen