Zum Beispiel möchte ich sehen, was "innerhalb" des @ time-Makros ist. Wie würde ich das tun?Wie zeige ich in Julia den Inhalt eines Makros an?
7
A
Antwort
1
Ich glaube nicht, dass es eine eingebaute Möglichkeit dafür gibt, aber Sie können die Codebasis für "macro X" suchen.
Das klingt, als wäre es ein nützliches Feature. Wenn also jemand mich korrigiert und es bereits existiert, könnten Sie immer ein Problem damit öffnen.
7
Während es das Makro selbst nicht anzeigt, können Sie die Ergebnisse der Makroerweiterung mit macroexpand
sehen. Zum Beispiel:
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)
In diesem Fall zeigt es Ihnen auch, wo sie definiert ist (util.jl, Zeile 38), aber das ist nicht immer geschieht. Da Makros selbst keine Objekte der ersten Klasse sind, funktionieren die Dienstprogramme wie which
/edit
/less
(oder ihre Makroäquivalente) nicht.
1
Mindestens seit 0.5 können Sie @less
Makros zu:
julia> @less @time x
wird mit einem Editor öffnen, die den Code zeigt
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
Verwandte Themen
- 1. Wie zeige ich den Inhalt eines std :: multimap und std :: multiset im Debugger in QtCreator an?
- 2. Wie zeige ich dynamisch Inhalt in Tabellen in Java an
- 3. Wie verwende ich ein WPF Ribbon-Menü und zeige den Inhalt unten in derselben Ansicht an?
- 4. Wie zeige ich den Inhalt dieses Arrays mit DataGridView?
- 5. Julia: Bedingt für For-Loop-Makros
- 6. Wie zeige ich den vollständigen Inhalt der LOB-Spalte in Oracle SQL * Plus an?
- 7. Wie kann ich den Inhalt eines RealmResults-Objekts mischen
- 8. In Grails, wie zeige ich Validierungsfehlermeldungen neben den Feldern an?
- 9. Wie zeige ich den Fremdschlüssel einer Tabelle in TimesTen an?
- 10. Wie aktualisiere ich den Inhalt eines FigureCanvasTkAgg
- 11. Wie lösche ich den Inhalt eines IFRAME?
- 12. Wie überprüfe ich den Inhalt eines Arrays?
- 13. Wie strecke ich den Inhalt eines HeaderedContentControl?
- 14. Wie bekomme ich den Inhalt eines iframe?
- 15. Wie zeige ich die Binärdarstellung eines Floats oder Double an?
- 16. Wie zeige ich den Tooltip-Inhalt über dem modalen Fenster an?
- 17. Wie zeige ich AxesSubplot in Python an?
- 18. Wie zeige ich Tooltips in Tkinter an?
- 19. Oracle: Wie zeige ich DBMS_XMLDOM.DOMDocument für das Debuggen an?
- 20. Wie zeige ich den Fortschritt während einer aktiven Schleife an?
- 21. Libgdx Wie zeige ich Text an?
- 22. Wie zeige ich den roten Kanal eines Bildes in Matlab an?
- 23. Wie zeige ich Inhalt für Fremdschlüssel in phpmyadmin
- 24. Wie zeige ich den Fortschrittsbalken beim Laden von ListView an?
- 25. Wie man die Breite eines Flexdivs an den Inhalt anpasst
- 26. Wie zeige ich eine Zahl vor den Gleichungen an?
- 27. Zeige den Inhalt von Mehrere select
- 28. Wie zeige ich den Text in Dateien an, wenn ich auf sie in meiner JList klicke?
- 29. Wie zeige ich die Funktion the_content in dieser Schleife an?
- 30. Wie zeige ich Inhalt in div basierend auf JSON-Daten