Typ Anmerkungen werden nicht Verhalten in Dart beeinflussen erlaubt. Wenn Sie sich nicht im aufgegebenen Modus ausgeführt wird, dann das:
int a = new A();
das gleiche wie das funktioniert:
var a = new A();
zur Laufzeit. Mit anderen Worten, wenn Sie sich nicht im aktivierten Modus befinden, können Sie Ihre A
gerne in einer Variablen speichern, die als int
gekennzeichnet ist. Es findet jedoch keine tatsächliche Konvertierung statt.
Wenn Sie im aktivierten Modus arbeiten, gibt das erste Formular eine Laufzeitausnahme.
Ich bin nicht sicher, aber ich denke, , was Sie fordern für eine Art und Weise ist eine Konvertierung zwischen Ihrer Klasse A
und int
zu definieren, die automatisch, wenn „cast“ zu einem int
passieren wird. So etwas existiert meines Wissens nicht. Sie sollten dazu einfach eine Methode definieren. Zum Beispiel:
int a = new A().to_i();
glaube ich, die Syntax ist "keine Syntax überhaupt". Mit anderen Worten - lassen Sie das '()' weg und es sollte "einfach funktionieren". Siehe http://news.dartlang.org/2012/05/types-and-casting-in-dart.html. Es muss davon ausgegangen werden, dass ein Downcast möglich ist (und Sinn macht). Was ist deine Klasse "A"? – Floris
Sie können schreiben var a = new A(); int b = a; – SpiderPig
Implizite Typkonvertierung in Skriptsprache schwer zu implementieren. Die explizite Konvertierung kann jedoch sehr einfach implementiert werden. Derzeit existiert in Dart kein expliziter Konvertierungsoperator als solcher. Sie können dies nicht in Dart 'var a = (int) new A()' tun, da der explizite Konvertierungsoperator nicht in Dart implementiert ist. – mezoni