2010-05-19 13 views
7

Estoy tratando de utilizar el método para nombrar un paquete lua después del nombre de archivo mencionado here, sin embargo, _REQUIREDNAME nunca se define. Por ejemplo, tengo estos dos archivos_REQUIREDNAME siempre nil

samplePackage.lua:

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

packageTest.lua:

require "samplePackage" 

Y cuando corro packageTest.lua emite > _REQUIREDNAME: nil

También couldn No encuentras ninguna mención de _REQUIREDNAME en el manual de Reflujo de Lua 5.1, por lo que se eliminó del idioma o me falta algo?

Respuesta

11

La forma en que los paquetes y módulos funcionan sufrió algunos cambios importantes en Lua 5.1, haciendo que la primera edición de Programación en Lua sea obsoleta en su mayoría con respecto a ese tema.

En 5.1, el nombre del módulo se pasa como argumento al módulo por require. Se puede acceder a ella con ...:

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

El second edition de programación en Lua Lua cubre 5.1. No es gratis, pero el capítulo sobre paquetes y módulos es available as a sample (PDF).