문제

ActionScript에서 제가 가장 그리워하는 것 중 하나는 연산자 오버로딩(특히 ==)이 없다는 것입니다.나는 내 클래스에 "비교" 메서드를 추가하여 이 문제를 해결했지만 내장된 사전과 같은 것을 사용하려는 경우와 같은 많은 경우에는 도움이 되지 않습니다.

이 문제를 해결할 수 있는 좋은 방법이 있습니까?

도움이 되었습니까?

해결책

아니요.

하지만 추가해서 나쁠 건 없지 equals 메소드를 자신의 클래스에 추가하세요.절대 사용하지 않으려고 노력해요 == 객체를 비교할 때(동일 ===, 이는 객체의 경우에도 동일함)만 확인하기 때문에 신원 .

안타깝게도 Flash 및 Flex의 모든 컬렉션은 ID가 필요한 유일한 평등 척도라고 가정합니다.

Flex에는 누군가가 이 문제를 한 번에 완화하고 싶어했지만 포기한 것처럼 보이는 힌트가 있습니다.라는 인터페이스가 있습니다 IUID, 그리고 그것은 에서 언급된다. Flex 개발자 가이드 , 그러나 어디에도 사용되지 않습니다.Flex의 컬렉션조차도 동등성을 결정하는 데 이를 사용하지 않습니다.그리고 Flash에 대한 솔루션을 요청하셨기 때문에 어차피 도움이 되지 않았을 수도 있습니다.

나는 내 블로그에 (Flex의 맥락에서) 이에 대해 더 많이 썼습니다: 평등은 없나요?.

다른 팁

예, 가능합니다. (하지만 조심하세요. 해킹되기 때문이죠.) http://filimanjaro.com/2012/operators-overloading-in-as3-javascript-too-%E2%80%93-workaround/

튜토리얼에서 +=, -= 연산자 오버로딩에 대해 썼습니다.하지만 ==로도 가능합니다. 명확하지 않은 경우 이에 대해 더 자세히 작성할 수 있습니다.

아, 이 접근 방식에는 몇 가지 단점이 있습니다(드물게 위험할 수도 있습니다).프로덕션에 사용하기 전에 다시 한 번 생각해보세요.

편집하다:

테스트 후에는 +=, -=의 트릭이 == 연산자에 적용되지 않는 것 같습니다(이치에 맞습니다).오해의 소지가 있는 정보를 올려서 죄송합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top