annotazioni di tipo non sono autorizzati a influenzare il comportamento a Dart. Se non si è in esecuzione in modalità controllata, allora questo:
int a = new A();
funzionerà lo stesso di questo:
var a = new A();
a run-time. In altre parole, quando non ci si trova in modalità selezionata, è possibile memorizzare A
in una variabile annotata come int
, ma non avviene alcuna conversione effettiva.
Se si sta eseguendo in modalità selezionata, il primo modulo fornirà un'eccezione di runtime.
non sono sicuro, ma io penso quello che stai chiedendo è un modo per definire una conversione tra la classe A
e int
che avverrà automaticamente quando "cast" a un int
. Nessuna cosa del genere esiste, per quanto ne so. Dovresti semplicemente definire un metodo per farlo. Per esempio:
int a = new A().to_i();
fonte
2013-06-05 23:45:23
Credo che la sintassi è "no sintassi a tutti". In altre parole, lascia il '()' e "dovrebbe funzionare". Vedi http://news.dartlang.org/2012/05/types-and-casting-in-dart.html. Deve esserci un'ipotesi che un downcast sia possibile (e ha senso). Qual è la tua classe 'A'? – Floris
Puoi scrivere var a = new A(); int b = a; – SpiderPig
Conversione di tipo implicita difficile da implementare in script langauge. Ma la conversione esplicita può essere implementata molto facilmente. Correntemente in Dart non esiste un operatore di conversione esplicito in quanto tale. Quindi non puoi farlo in Dart 'var a = (int) new A()' perché l'operatore di conversione esplicita non è implementato in Dart. – mezoni