Tengo una def en un espacio de nombres que quiero inicializar una vez cuando se inicia la aplicación, pero cada vez que el espacio de nombres que contiene la "def" es "usado" y: recargados de otro espacio de nombres, la "def" se vuelve a evaluar. ¿Cómo puedo evitar que la "def" se vuelva a evadir durante esta recarga?¿Cómo puedo obtener una "def" para no volver a cargar en clojure?
6
A
Respuesta
13
defonce
le acercarán a pesar de que todavía se definirá de nuevo si el espacio de nombres es: recargado porque (use 'my.namespace :reload)
primera tiros de la vieja unión de raíz.
Defonce es una macro que comprueba si la var ya tiene un enlace de raíz en el espacio de nombres dado y luego solo lo define si no lo hace. Puede usar esto para resolver su problema colocando esta definición especial en su propio espacio de nombres con un (in-ns ...)
para evitar que se borre al volver a cargar. a continuación, puede volver a cargar el espacio de nombres 'principal' tantas veces como desee y el código solo se debe definir una vez.
1
Cuestiones relacionadas
- 1. Redefiniendo "def" en Clojure
- 2. ¿Cómo puedo programar Logback para volver a cargar la configuración
- 3. ¿Cómo puedo volver a cargar un script en IRB?
- 4. ¿Cómo volver a cargar TreeStore?
- 5. Clojure def vs defn para una función sin argumentos
- 6. ¿Cómo volver a cargar gdbinit?
- 7. ¿Cómo forzo a ActiveRecord a volver a cargar una clase?
- 8. ¿Volver a cargar una sola fila jqGrid?
- 9. ¿Cómo obtener una UITableview para ir al inicio de la página al volver a cargar?
- 10. ¿Volver a cargar rubygems en irb?
- 11. ¿Cómo puedo actualizar o volver a cargar el JFrame?
- 12. ¿Cómo volver a cargar el módulo de Python en IDLE?
- 13. ¿Cómo volver a cargar un div sin volver a cargar toda la página?
- 14. ¿Cómo puedo acceder a "implícito" implícito, es decir, def a [A: B] o def a [A <% B]?
- 15. ¿Cómo puedo volver a cargar una definición de clase en ipython
- 16. ¿Volver a cargar hojas de estilo CSS sin volver a cargar la página?
- 17. Actualizar/volver a cargar Flot en Javascript
- 18. ¿Hay una API limpia para restablecer las variables de instancia en 'volver a cargar' en ActiveRecord?
- 19. Cómo volver a cargar una página JSF desde un ValueChangeEvent?
- 20. ¿Cómo puedo volver a cargar la página actual en Ruby on Rails?
- 21. ¿Cómo puedo mapear una macro en Clojure?
- 22. ¿Por qué no puedo vincular + en clojure?
- 23. Tell eclipse para volver a cargar variables de entorno
- 24. JavaScript para volver a cargar la página como solicitud GET
- 25. cómo volver a cargar solo scripts a través de firebug
- 26. ¿Cómo volver a cargar todas las gemas en Rails 3?
- 27. ¿Cómo forzar a un script a volver a cargar y volver a ejecutar?
- 28. No se puede cargar clojure-contrib - FileNotFoundException
- 29. Mercurial: ¿cómo puedo volver a una revisión en particular?
- 30. ¿Cómo volver a cargar los módulos en django shell?
hey, ¿ha cambiado este comportamiento desde esta respuesta? Traté de agregar una (definición x 5) a un espacio de nombres, comencé una réplica, x es 5, luego lo cambié en la fuente, intenté (requiero: recargar 'prueba) y (uso: recargar' prueba) y aun así x sigue siendo 5 – Hendekagon