Tengo que suponer que su #comment
acerca de qué tan barata (= rápida) es la prueba de igualdad estaba allí por una razón. Dado eso, probablemente deberías seguir usando la prueba de igualdad económica. Es muy rápido, mucho más rápido que eq
, y mucho menos que cualquier tipo de comparación profunda.
Es posible que un objeto con un operador ==
directa o indirectamente sobrecargado pueda usurpar la prueba para sus propios fines. Pero si es haciendo eso, incluso podría preferir su respuesta mediada.
El enfoque que tome puede depender de lo que sepa sobre las clases del objeto. Los enfoques que se aplican a casos generales no siempre son óptimos para casos específicos. Cuanto más sepa sobre algo, más podrá optimizarlo, y al revés también.
Si sabe sabe que no está utilizando una clase con sobrecarga aplicable, no hay razón para ir arrastrando una función de biblioteca no incorporada, y justa razón para no hacerlo. Si no sabe sobrecarga, o si lo sabe y no quiere que se aplique, entonces tal vez tome el enfoque lento.
Siempre y cuando entienda las preocupaciones de sobrecarga, es un error considerar que un enfoque es correcto y otro es incorrecto. Cada uno tiene su propósito. Si siempre estuvo mal hacer lo que está haciendo, entonces esa operación estaría prohibida o al menos advertida.
Notará que es no así marcado.
Si está utilizando una clase cuyos objetos tienen una sobremultificación nummification ('0 +'), o una sobrecarga '==' (tal vez a través de '<=>'), entonces es posible que realmente * quiera * es interceptada, personalizada sentido de igualdad Hacer una declaración general sin mencionar esas consideraciones parece demasiado fácil. Dicho esto, no puedo pensar en muchos escenarios en los que la ruta del código adoptada por la función del módulo sea una ruta crítica en la que intentas extraer hasta el último detalle del rendimiento que puedas. Pero si lo fuera, por supuesto querrías usar un '' '' 'normal. – tchrist
De acuerdo. Es por eso que tu respuesta recibió un voto positivo de mi por mencionar eso. Hay muchos casos en los que uno podría querer comparar cosas para la igualdad, y el tipo de igualdad a usar debería ser considerado para cada caso individualmente. Sin embargo, la pregunta era bastante específica y, por lo tanto, obtuvo una respuesta específica. – rafl
Merece una respuesta específica, también. Es por eso que obtuviste mi voto popular. ☺ – tchrist