Из того, что я понимаю в ActionScript, есть два типа приведений:
var bar0:Bar = someObj as Bar; // "as" casting
var bar1:Bar = Bar(someObj); // "class name" casting (for want of a better name)
Также, пожалуйста, исправьте меня, если я ошибаюсь здесь, as
casting либо вернет экземпляр класса, либо null
, в то время как casting класса будет либо возвращать экземпляр класса, либо поднять исключение, если литье невозможно - кроме этого, они идентичны.
Учитывая это, тем не менее, as
кастинг кажется серьезным нарушением принципа fail-fast-fail-early... И мне трудно представить себе ситуацию, когда было бы предпочтительнее использовать as
cast, а не просто имя класса (с, возможно, с instanceof
).
Итак, мой вопрос: при каких обстоятельствах было бы предпочтительнее использовать as
литье?