flash - ventajas - La falta de sobrecarga del operador en ActionScript 3.0
flash actionscript 3.0 descargar (2)
Nop.
Pero no hace daño agregar métodos equals
a tus propias clases. Intento nunca usar ==
cuando comparo objetos (lo mismo vale para ===
, que es lo mismo para los objetos) ya que solo verifica la identidad .
Lamentablemente, todas las colecciones en Flash y Flex asumen que la identidad es la única medida de igualdad que se necesita.
Hay indicaciones en Flex de que alguien quería aliviar este problema al mismo tiempo, pero parece que se abandonó: hay una interfaz llamada IUID , y se menciona en la Guía del desarrollador de Flex , pero no se usa en ninguna parte. Ni siquiera las colecciones de Flex lo usan para determinar la igualdad. Y dado que está pidiendo una solución para Flash, puede que no le haya ayudado de todos modos.
He escrito algo más sobre esto (en el contexto de Flex) en mi blog: ¿No hay igualdad? .
Una de las cosas que más extraño en ActionScript es la falta de sobrecarga del operador, en particular ==. Para evitar este problema, agregué un método de "Comparar" a mis clases, pero eso no ayuda en muchos casos, como cuando desea usar cosas como el diccionario incorporado.
¿Hay una buena manera de evitar este problema?
Sí, se puede hacer (pero tenga cuidado, es hacky): http://filimanjaro.com/2012/operators-overloading-in-as3-javascript-too-%E2%80%93-workaround/
En el tutorial escribí sobre + =, - = sobrecarga del operador. Pero también es posible con ==, puedo escribir más sobre eso si no está claro.
Ah, el enfoque tiene algún inconveniente (en casos raros puede ser incluso peligroso). Piense dos veces, antes de usarlo en una producción.
EDITAR:
Después de las pruebas, parece que el truco con + =, - = no se aplica a == operador (lo que tiene sentido). Lo siento por información engañosa.