Par exemple, je veux voir ce qu'il y a "dedans" de la macro @time. Comment ferais-je cela?Dans Julia, comment afficher le contenu d'une macro?
Répondre
Je ne pense pas qu'il existe une manière intégrée de faire cela, mais vous pouvez rechercher la base de code pour "macro X". Cela semble être une fonctionnalité utile, donc à moins que quelqu'un ne me corrige et qu'il existe déjà, vous pouvez toujours ouvrir un problème en le demandant.
Bien qu'il ne vous montre pas la macro elle-même, vous pouvez voir les résultats de la macro-expansion avec macroexpand
. Par exemple:
julia> macroexpand(:(@time rand(10)))
:(begin # util.jl, line 38:
local #60#b0 = Base.gc_bytes() # line 39:
local #61#t0 = Base.time_ns() # line 40:
local #62#val = rand(10) # line 41:
local #63#t1 = Base.time_ns() # line 42:
local #64#b1 = Base.gc_bytes() # line 43:
Base.println("elapsed time: ",Base./(Base.-(#63#t1,#61#t0),1.0e9)," seconds (",Base.-(#64#b1,#60#b0)," bytes allocated)") # line 44:
#62#val
end)
Dans ce cas, il vous montre également où elle est définie (util.jl, ligne 38), mais cela ne se produit pas toujours. Comme les macros ne sont pas des objets de première classe, les utilitaires tels que which
/edit
/less
(ou leurs équivalents macro) ne fonctionnent pas.
Au moins depuis 0,5, vous pouvez aussi @less
macros:
julia> @less @time x
ouvrira un éditeur, qui montre le code
macro time(ex)
quote
local stats = gc_num()
local elapsedtime = time_ns()
local val = $(esc(ex))
elapsedtime = time_ns() - elapsedtime
local diff = GC_Diff(gc_num(), stats)
time_print(elapsedtime, diff.allocd, diff.total_time,
gc_alloc_count(diff))
val
end
end
- 1. Fonctionnalité de macro cassée dans Julia v0.6
- 2. Julia v0.6 macro dans la fonction
- 3. Comment trouvez-vous l'origine d'une macro dans Julia?
- 4. Comment afficher toutes les sorties dans Julia?
- 5. Quel est le problème avec ce swap de Julia! macro?
- 6. Confluence Macro: comment inclure le contenu
- 7. Comment puis-je récupérer les méthodes d'une macro Julia?
- 8. Macro avec la fonction comme entrée dans Julia
- 9. comment afficher le contenu d'un fichier texte dans PowerPoint à l'aide d'une macro
- 10. La macro Julia ne reconnaît pas Array argument
- 11. Comment utiliser la macro @everywhere dans un simple code Julia pour le calcul parallèle
- 12. Julia: déballer dans le style
- 13. comment utiliser lock dans Julia
- 14. Comment afficher le contenu Liste dans FormView
- 15. Comment afficher le contenu HTML dans silverlight
- 16. comment afficher le contenu dans d'autres parties?
- 17. comment afficher le contenu blob
- 18. Comment afficher le contenu pdf?
- 19. Définir une macro sur le contenu d'une macro
- 20. Comment afficher/masquer le contenu
- 21. Umbraco 4 Contenu Macro
- 22. Comment importer le module personnalisé dans julia
- 23. comment installer Julia dans le code VS
- 24. Comment arrêter le serveur TCP dans Julia?
- 25. Julia: comment utiliser le type
- 26. Julia | Comment envoyer un e-mail via le code Julia
- 27. Seach le contenu d'une macro Excel
- 28. Pousser le contenu d'un tableau vers DataFrame - Julia
- 29. Julia - Comment Julia traite une variable?
- 30. Macro - Effacer le contenu sur plusieurs feuilles