就在昨天,我决定在过去几年使用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";
}
}
Run Code Online (Sandbox Code Playgroud) haxe ×1