==
ist Zahlen zum Vergleichen Wenn eines seiner Argumente nicht eine Zahl ist, es wird immer false zurück..
(== :a :a)
; => false
Wie Sie sagen, (clojure.contrib.repl-utils/source ==)
am REPL (mit repl-utils
require
‚d, natürlich) sehen können, ==
ruft die equiv
Methode clojure.lang.Numbers
. die entsprechende Bit von clojure/lang/Numbers.java
(aus dem aktuellen oder close-to-latest verpflichten auf GitHub):
static public boolean equiv(Object x, Object y){
return y instanceof Number && x instanceof Number
&& equiv((Number) x, (Number) y);
}
Verwenden Sie =
für Gleichheitsvergleiche von Dingen, die möglicherweise keine Zahlen sind. Wenn Sie sich tatsächlich mit Zahlen beschäftigen, sollte ==
etwas schneller sein.
Dank Michal! –
Gern geschehen. :-) –