==
es para comparar números Si alguno de sus argumentos no es un número, siempre devolverá falso:..
(== :a :a)
; => false
Como se puede ver diciendo (clojure.contrib.repl-utils/source ==)
en el REPL (con repl-utils
require
'd, por supuesto), ==
llama al método de clojure.lang.Numbers
equiv
. el bit correspondiente de clojure/lang/Numbers.java
(a partir de la última o próxima al último comprometerse en GitHub):
static public boolean equiv(Object x, Object y){
return y instanceof Number && x instanceof Number
&& equiv((Number) x, (Number) y);
}
Use =
para comparar la igualdad de cosas que pueden no ser números. Cuando en realidad se trata de números, ==
debería ser algo más rápido.
Gracias Michal! –
De nada. :-) –