2012-03-27 11 views
18

He leído dos publicaciones recientes que tratan sobre Depende e importacionesimportaciones y depende

Pero tengo cuatro persistentes, preguntas relacionadas:

  1. Supongamos que quiero que dos paquetes también estén disponibles para el usuario final cuando Oad en mi paquete. ¿Hay alguna buena razón para no usar Depends en este contexto? (El punto aquí es cargar los tres paquetes mediante un comando que carga solo el paquete).

  2. ¿Está bien especificar un paquete en los campos Depends e Imports?

  3. Si un paquete se enumera en Depende, ¿hay algún punto para incluirlo también en Importaciones? ¿O ya se han negado los beneficios de las importaciones al usar Depends?

  4. ¿Es correcta la siguiente? Un paquete debe aparecer en el campo Importaciones del archivo DESCRIPTION si y solo si el paquete se importa (en todo o en parte) en el archivo NAMESPACE.

Thanks much!

David

+1

muy relacionados: http://stackoverflow.com/q/8637993/602276 – Andrie

+1

Ahora veo - lo hizo en el hecho de enlace a las 2 publicaciones anteriores, pero que no era muy evidente. Edité tu pregunta para hacerlo mucho más explícito. Buena pregunta, por cierto. +1 – Andrie

Respuesta

11

par de puntos, y tengo que admitir que me parece también esta confusa a veces. Pero lo volví a visitar recientemente, y aquí está mi opinión:

  1. "Depends" es cómo solíamos hacer las cosas; está más cerca de "simplemente cargar los tres": cuando el tercero depende de los otros dos, los tres se cargarán.

  2. Con Namespaces, también podemos importar. Eso trae solo los símbolos indicados, que pueden ser datos o funciones. Yo uso esto a veces; no cargará el otro paquete desde el que importa, sino que solo pondrá a disposición los símbolos indicados. Como tal, es "más ligero" que Depende.

  3. Si lo hace, no hay necesidad de Importaciones.

  4. Correcto: si utiliza declaraciones en NAMESPACE para importar símbolos de otros paquetes, ese otro paquete debe aparecer en Imports: en el archivo DESCRIPTION.

+1

Buena respuesta. Además de esto, mi opinión es que 'Importaciones' es más seguro que' Depende'. Es muy probable que use la terminología incorrecta aquí, pero si 'Import', entonces los paquetes importados viven en una" pila "que es" interna "al espacio de nombres del paquete de importación. Esto protege contra el escenario donde otros paquetes cargados posteriormente enmascaran funciones. Si esta vaga descripción es remotamente precisa, ¿puede agregar una descripción adecuada en su respuesta? – Andrie

+0

Creo que sé a qué te refieres, pero no puedo expresarlo de una manera que me satisface.Pero su punto principal es bueno: "Importar" es más detallado y es menos probable que tenga efectos secundarios. –

+0

Ahah, sabía que había una pregunta y respuesta similares recientemente. @ josho'brien al rescate en http://stackoverflow.com/a/8638902/602276 – Andrie

Cuestiones relacionadas