2011-12-03 6 views
5

Quale dovrebbe essere utilizzata mentre dichiara una variabile come di seguito:Differenza tra oggetto e *?

private var someVar:*; 

O

private var someVar:Object; 

Qual è la differenza tra i due? Che cosa rende l'uno superiore all'altro in varie situazioni? Qualche esempio?

Grazie.

risposta

10

someVar:* è una var tipizzato speciale che contiene il valore predefinito valore predefinito undefined mentre

Object var è null.

Questa è l'unica differenza fondamentale.

9

Dal Adobe Documentation,

private var someVar:*; 
private var someVar:Object; 

Nelle versioni precedenti di ActionScript, una variabile senza tipo di annotazione è stato assegnato automaticamente il tipo di dati Object. Questo non è più vero in ActionScript 3.0, che ora include l'idea di una variabile veramente non tipizzata . Le variabili senza annotazione di tipo ora sono considerate non tipizzate. Se si preferisce chiarire ai lettori del proprio codice che l'intenzione è di lasciare una variabile non tipizzata, è possibile utilizzare il nuovo asterisco (*) per l'annotazione del tipo, che equivale a omettendo un'annotazione di tipo. L'esempio seguente mostra due istruzioni equivalenti, che dichiarano entrambe una variabile senza tipo x: