18

我想将我的自定义类 A 的实例转换为 int。隐式转换运算符的语法是什么?(我以为我记得有这样的功能,但我在网上找不到)

int a = (new A());
4

2 回答 2

36

您还可以as用来帮助告诉工具“不,真的,将此对象视为这种类型”。

一个很好的例子是当你必须处理 dart:html 的querySelector()函数时。

FormElement form = querySelector('#sign-up') as FormElement;

上面检查了返回的对象querySelector('#sign-up')是否真的是FormElement的一个实例。

在https://www.dartlang.org/docs/dart-up-and-running/ch02.html#operators了解更多信息

于 2013-06-06T03:06:26.990 回答
5

不允许类型注释影响 Dart 中的行为。如果您没有在检查模式下运行,那么:

int a = new A();

将与此相同:

var a = new A();

在运行时。换句话说,当不处于检查模式时,欢迎您将您A的变量存储在一个注释为 的变量中int,但不会发生实际转换。

如果你在检查模式下运行,第一个表单会给你一个运行时异常。

我不确定,但我认为您要求的是一种定义类之间转换的方法,A并且int当“转换”为int. 据我所知,不存在这样的事情。您应该简单地定义一个方法来做到这一点。例如:

int a = new A().to_i();
于 2013-06-05T23:45:23.847 回答