==
est pour comparer des nombres. Si l'un de ses arguments n'est pas un nombre, il renverra toujours false:
(== :a :a)
; => false
Comme vous pouvez le voir en disant (clojure.contrib.repl-utils/source ==)
à la REPL (avec repl-utils
require
'd, bien sûr), ==
des appels à l' equiv
méthode de clojure.lang.Numbers
. Pertinentes bits de clojure/lang/Numbers.java
(à partir de la dernière ou de la proximité du dernier commit sur GitHub):
static public boolean equiv(Object x, Object y){
return y instanceof Number && x instanceof Number
&& equiv((Number) x, (Number) y);
}
Utiliser =
pour l'égalité des comparaisons de choses qui peuvent ne pas être les chiffres. Lorsque vous sont en fait jongler avec les chiffres, ==
devrait être un peu plus rapide.