2011-09-17 5 views
0

Flex에서는 데이터 형식으로 *을 지정할 수 있습니다. 무엇이며 어떻게 사용해야합니까?ActionScript * 데이터 유형 - 그것은 무엇입니까?

검색 할 항목과 검색 할 항목을 인수로 취하는 inArray() 메서드를 작성했습니다. "검색 할 대상"은 * 데이터 형식의 훌륭한 후보자처럼 보입니다.

사용하지 않아야합니까?

감사합니다.

+0

이 질문은 flex와는 관계가 없지만 AS3에 관한 내용입니다. – back2dos

+0

"할 일이 없다"는 잘못되었습니다. Flex 관련 사항인지 또는 AS에서 상속 받았는지 확실하지 않았습니다. – Francisc

답변

2

*는 유형이 지정되지 않은 식별자를 나타냅니다. 객체의 유형이 특정 클래스 또는 인터페이스 정의를 따르지 않는다고 보장 할 수 없을 때 사용합니다.

예에서 *이 적절한 지 여부는 검색에서 사용하는 작업에 따라 다릅니다. 당신이 평등 평등 활동에만 의지한다면, 당신은 잘되어야하며 실제로 그것은 아마도 최선의 선택 일 것입니다.

+0

네, 기본적으로 바늘 == 건초 더미 [i]'입니다. – Francisc

1

엄격한 컴파일 모드를 사용하는 경우 *를 사용해야합니다. 그것은 단지 '유형 없음'이며 런타임에 검사됩니다.

2

실제로 *에는 유형이없는 것으로 명시되어 있습니다. 실제로 그것은 기본 유형입니다. 유형이 지정되지 않은 모든 변수 또는 함수는 되돌아갑니다.

이것은 기본적으로 컴파일러에게 "런타임시 처리하기 때문에이 형식 검사를 수행하지 않아도됩니다."라고 알려줍니다.

사실 *아니오 유형입니다. 단순히 그에 상응하는 가치가 없습니다.
* 유형의 표현식 만 undefined 값을 반환 할 수 있습니다. Object 유형 (즉, 유형이 아닌이 아닌 다른 유형의 모든 것)은 null만을 보유 할 수 있습니다.

많은 Array 메서드가 해당 형식을 사용하는 것을 볼 수 있습니다. 즉, Array 요소는 유형이 아니기 때문에이 아니므로 undefined이 될 수 있습니다.
따라서 매개 변수가 * 또는 Object (또는 엄격한 비교 여부와 상관없이) 입력되었는지 여부에 따라 약간의 성능 차이가있을 수 있습니다.

개인적으로는 Array 메서드와 일치하기 때문에이 경우 *을 주로 사용하는 것이 좋습니다.

+0

감사합니다. [여분의 문자] – Francisc