De la referencia del lenguaje D:
Los módulos tienen una correspondencia uno a uno con los archivos fuente. El nombre del módulo es el nombre del archivo sin la ruta y la extensión.
Sin embargo, los nombres de los módulos aún se especifican explícitamente en los archivos.
module foo;
¿Cuál es el punto de esto? Si los módulos corresponden a archivos, ¿por qué el compilador no puede inferir cómo se llaman a partir de los nombres de los archivos?
Solución del problema
misma página un poco hacia abajo (énfasis mío)
ModuleDeclaration establece el nombre del módulo y a qué paquete pertenece. Si está ausente, el nombre del módulo se toma como el mismo nombre
(desprovisto de ruta y extensión) del nombre del archivo de origen.
esto significa que si desea colocar un módulo en un paquete, debe especificar explícitamente que es (como la package
declaración de Java) y, dada la extraña propensión de las personas a usar nombres de directorio extraños/extranjeros, no puede confiar en verificar fuente/src /importar en la ruta
la razón por la que el nombre del archivo y el nombre del módulo no tienen que ser el mismo puede ser que puede usar un.di para importar y usar varias versiones del código real usando el interruptor -c para crear el archivo.obj para vincular las diferentes versiones (aunque jugar con la ruta de importación es más útil para eso)
No hay comentarios:
Publicar un comentario