【发布时间】:2014-12-24 23:07:49
【问题描述】:
就在昨天,我决定在过去几年使用 Actionscript 3 后开始学习 Haxe 编程语言。今天我一直在探索抽象类型,我开始意识到它们似乎与 Java 中的抽象类有很大的不同。我开始掌握他们所做的一些事情,但我不确定摘要的用途。什么是在 Haxe 中正确使用抽象的构成,我应该在什么时候优先使用它们而不是类?
例如,下面是使用抽象类型的复数类型的不完整定义。我应该更喜欢这个还是只是一个普通的课程?
abstract Complex({real:Float, imag:Float}) {
public function new(real:Float, imag:Float) {
this = { real: real, imag: imag };
}
public function real():Float { return this.real; }
public function imag():Float { return this.imag; }
@:op(A + B)
public static function add(lhs:Complex, rhs:Complex):Complex {
return new Complex(lhs.real() + rhs.real(), lhs.imag() + rhs.imag());
}
public function toString():String {
return real() + " + " + imag() + "i";
}
}
【问题讨论】:
标签: haxe