Da quello che ho capito di ActionScript, ci sono due tipi di calchi:ActionScript: Esiste sempre una buona ragione per utilizzare il cast "come"?
var bar0:Bar = someObj as Bar; // "as" casting
var bar1:Bar = Bar(someObj); // "class name" casting (for want of a better name)
Inoltre, e per favore mi corregga se sbaglio qui, as
fusione sarà o restituire un'istanza della classe o null
, mentre Il cast di "nome classe" restituirà un'istanza della classe o genererà un'eccezione se il cast è impossibile - a parte questo, sono identici.
Tuttavia, il lancio di as
sembra essere un'enorme violazione del principio di fail-fast-fail-early ... E ho difficoltà a immaginare una situazione in cui sarebbe preferibile utilizzare un cast as
di un cast di nome classe (con, possibilmente, un instanceof
gettato lì).
Quindi, la mia domanda è: in quali circostanze sarebbe preferibile utilizzare il casting as
?
Si noti che l'associazione tardiva, in generale, che è spesso utile, è in conflitto diretto con la tua interpretazione di FF. – dkretz
Questo è vero, è anche inevitabile in ActionScript in quanto non vi è alcuna nozione di "generici", quindi le cose che si estraggono dai contenitori saranno non tipizzate. –
(quindi è preferibile fallire su 'var foo: Foo = Foo (myArray [i])' piuttosto che ottenere un null e trattare con un NPX da qualche altra parte) –