我正在关注使用 Haxe 语言的 HaxeFlixel 教程。现在我没有任何 Haxe 经验,但我决定勇敢地阅读本教程,因为我确实有 Java 经验,而且 Haxe 作为一种语言似乎与 Java 非常相似。
到目前为止,一切进展顺利。但是,我遇到了这段代码,我有几个问题:
class FSM
{
public var activeState:Void->Void;
public function new(?InitState:Void->Void):Void
{
activeState = InitState;
}
public function update():Void
{
if (activeState != null)
activeState();
}
}
现在我明白这是一个名为的类FSM
,并且有一个名为activeState
.
以下是我的问题:
是什么类型的
activeState
?我会理解,如果是这样的,activeState:Void
但->
完成了什么?它用作指针吗?它是指向另一个 void 变量的 void 指针吗??
前面的InitState:Void->Void
表示什么?在 if 语句之后,
activeState
就像使用括号调用函数一样。但是,activeState
是变量而不是函数。那么 if 语句究竟做了什么?
还有一个问题:
public var playerPos(default, null):FlxPoint;
我知道playerPos
是FlxPoint
类的一个实例,但是default
andnull
是做什么的?