Переменная Actionscript, объявленная как * (звезда) - PullRequest
6 голосов
/ 05 ноября 2010

Я где-то видел следующее утверждение -

var someVariable:*;

Почему someVariable объявлен как * (звездный) тип?Какая польза от объявления этого таким образом?

1 Ответ

8 голосов
/ 05 ноября 2010

Практическая разница между * и Object заключается в том, что * может быть undefined, тогда как Object не может.

В документах есть это , чтобы сказать:

Указывает, что свойство не типизировано. Использование символа звездочки для аннотации типа эквивалентно использованию аннотации без типа. Выражения, которые читаются из нетипизированных свойств, считаются нетипизированными выражениями. Использование нетипизированных выражений или свойств рекомендуется в следующих случаях:

  • Если вы хотите отложить проверку типов до времени выполнения. Вы можете использовать нетипизированное свойство или выражение, чтобы обойти проверку типов во время компиляции в строгом режиме. Однако обратите внимание, что проверка типа во время выполнения операторов присваивания происходит независимо от того, используете вы строгий режим или нет.

  • Когда вы хотите сохранить неопределенное значение в свойстве. В отличие от предыдущих версий ActionScript значение undefined не является членом типа данных Object. Для хранения значения undefined необходимо использовать нетипизированное свойство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...