我想将自定义类A的实例强制转换为int。隐式强制转换运算符的语法是什么? (我以为我记得有这样的功能,但我无法在网上找到它)
int a = (new A());
答案 0 :(得分:18)
您还可以使用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
了解详情答案 1 :(得分:3)
不允许输入注释影响Dart中的行为。如果您没有在检查模式下运行,那么:
int a = new A();
将与此相同:
var a = new A();
在运行时。换句话说,当您未处于选中状态时,我们欢迎您将A
存储在注释为int
的变量中,但不会进行实际转换。
如果您在检查模式下运行,第一个表单将为您提供运行时异常。
我不确定,但我认为您要求的是一种定义您的班级A
和int
之间自动转换的方法何时“施放”到int
。据我所知,没有这样的事情存在。您应该只定义一个方法来执行此操作。例如:
int a = new A().to_i();