_REQUIREDNAME всегда ноль - PullRequest
7 голосов
/ 20 мая 2010

Я пытаюсь использовать метод для именования пакета lua после имени файла, упомянутого здесь , однако _REQUIREDNAME никогда не определяется. Например у меня есть эти два файла

samplePackage.lua:

print("_REQUIREDNAME: ", _REQUIREDNAME)
return nil;

packageTest.lua:

require "samplePackage"

И когда я запускаю packageTest.lua, он выдает > _REQUIREDNAME: nil

Я также не смог найти упоминания о _REQUIREDNAME в руководстве по Lua 5.1 Refrence, поэтому оно было удалено из языка или я что-то упустил?

1 Ответ

12 голосов
/ 20 мая 2010

Способ работы пакетов и модулей претерпел некоторые значительные изменения в Lua 5.1, в результате чего первое издание Programming in Lua в основном устарело по этому вопросу.

В 5.1 имя модуля передается модулю как аргумент require. Вы можете получить к нему доступ с помощью ...:

print("Module name: ", ...)

Второе издание Программирование на Lua * охватывает Lua 5.1. Это не бесплатно, но глава о пакетах и ​​модулях доступна в качестве образца (PDF) .

...