Ich möchte sehen, ob ein Symbol „def“ ed war, aber ich kann jeder ifdef SyntaxIn clojure wie kann ich testen, ob ein a-Symbol definiert wurde?
Antwort
user> (resolve 'foo)
nil
user> (def foo 3)
#'user/foo
user> (resolve 'foo)
#'user/foo
resolve
oder ns-resolve
kann tun, was Sie suchen nicht sehen:
user> (def a 1)
#'user/a
user> (def b)
#'user/b
user> (resolve 'a)
#'user/a
user> (resolve 'b)
#'user/b
user> (resolve 'c)
nil
user> (boolean (resolve 'b))
true
EDIT:
Um einen boolean zu erhalten pro MayDaniel Kommentar, das ist nicht genau das, was Sie gefragt, aber es wird Sie dort ankommen. Hier ist eine Implementierung von bounded?
(wahrscheinlich nicht der beste Name):
(defn bounded? [sym]
(if-let [v (resolve sym)]
(bound? v)
false))
user> (map bounded? ['a 'b 'c])
(true false false)
Nun, nein. 'b ist gelöst, aber es ist ungebunden. Das ist nicht das, was der Fragesteller will. – MayDaniel
Sie haben Recht. Überarbeitete –
Ich denke, es wäre selten, dass man tatsächlich "wahr" und "falsch" brauchen würde. Da "resolve" einen truthigen Wert zurückgibt, wenn das Symbol gebunden ist, und einen falschen Wert "nil", wenn es nicht gebunden ist, könnte man oft "resolve" verwenden, wie es ist. '(if (resolve 'c)" Das Symbol ist gebunden, Mann. "" Whaa ?? Dieses Symbol ist ungebunden! ")' – Mars
verwenden können, finden-var für dieses
(bound? (find-var 'user/y))
Dies gibt eine Nullzeigerausnahme zurück, wenn 'y' in' user' nicht gebunden ist, weil 'find- var 'gibt in diesem Fall' nil' zurück. – Mars
- 1. Wie kann ich testen, ob eine java.lang.Math-Methode aufgerufen wurde?
- 2. Wie kann ich testen, ob die Funktion nicht aufgerufen wurde?
- 3. Testen Sie, ob ui: im Template-Client definiert wurde:
- 4. Wie testen, ob eine Klasse explizit ein __gt__ definiert hat?
- 5. Puppet - testen, ob ein Paket bereits definiert ist?
- 6. Testen, ob jQueryUI geladen wurde
- 7. Testen, ob ein Objekt in ActionScript definiert ist
- 8. Testen, ob ein Typ in Unity registriert wurde
- 9. Wie kann ich testen, ob ein IMG-Tag existiert?
- 10. Testen, ob ein Ereignis in Jasmine ausgelöst wurde
- 11. Wie kann ich testen ob ein Item aus dem Dropdown Menü mit Capybara/Poltergeist ausgewählt wurde?
- 12. Wie zu testen, ob zwei Zahlen in Clojure nahe sind
- 13. Wie kann man wissen, ob eine XML-Eigenschaft definiert wurde?
- 14. Wie kann ich testen, ob CMMotionManager funktioniert?
- 15. Wie kann ich testen, ob ein Autoprefixer funktioniert?
- 16. Testen, ob eine Methode definiert ist
- 17. Wie kann ich feststellen, ob ein Realm erfolgreich aktualisiert wurde?
- 18. Wie kann ich feststellen, ob ein Prozess beendet wurde?
- 19. Wie kann ich feststellen, ob ein UILabel berührt wurde?
- 20. Wie kann ich feststellen, ob ein Bild photoshopped wurde?
- 21. Wie kann ich testen, ob eine Enum definiert ist oder nicht, während ich den Fall ignoriere?
- 22. Wie testen, ob ein Code in Clojure auf ein Makro verweist?
- 23. Wie kann ich überprüfen, ob ein untergeordnetes Browserfenster geladen wurde?
- 24. Wie kann ich feststellen, ob ein `NSManagedObject` gelöscht wurde?
- 25. Wie kann ich feststellen, ob ein Popup vollständig geladen wurde?
- 26. Wie kann ich prüfen, ob ein JavaScript-Eventhandler eingerichtet wurde?
- 27. Testen Clojure in Maven
- 28. Testen, ob ein Logback-Log-Statement mit Junit aufgerufen wurde?
- 29. Wie kann ich testen, ob eine Datei zum Schreiben in Perl geöffnet wurde?
- 30. Clojure Unit Test: Überprüfen Sie, ob eine Funktion aufgerufen wurde
Brilliant arbeitete ersten Mal. Vielen Dank! :) – Zubair