Тип аннотации не могут влиять на поведение в Dart. Если вы не работаете в зарегистрированном режиме, то это:
int a = new A();
будет работать так же, как это:
var a = new A();
во время выполнения. Другими словами, если вы не в установленном режиме, вы можете сохранить свой A
в переменной, аннотированной как int
, но фактическое преобразование не происходит.
Если вы работаете в проверенном режиме, первая форма даст вам исключение во время выполнения.
Я не уверен, но я думаю, , что вы просите за это способ определить преобразование между ваш класс A
и int
, что будет происходить автоматически, когда «слепок» на int
. Насколько мне известно, такого не существует. Вы должны просто определить способ для этого. Например:
int a = new A().to_i();
Я считаю, что синтаксис «нет синтаксиса вообще». Другими словами - оставьте поле '()', и оно должно «просто работать». См. Http://news.dartlang.org/2012/05/types-and-casting-in-dart.html. Должно быть предположение, что понижение возможно (и имеет смысл). Каков ваш класс 'A'? – Floris
Вы можете написать var a = new A(); int b = a; – SpiderPig
Неявное преобразование типов трудно реализовать в скрипте langauge. Но явное преобразование может быть реализовано очень просто. Ударно в Дарт не существует явного оператора преобразования как такового. Поэтому вы не можете сделать это в Dart 'var a = (int) new A()', потому что явный оператор преобразования не реализован в Dart. – mezoni