Haxe - 浮动空混淆

时间:2015-01-01 15:57:39

标签: null haxe

以下是我在Haxe中的代码示例

public function new(CminSpeed:Null<Float>,CmaxSpeed:Null<Float>)
{
    if (CminSpeed == null)
    {
        CminSpeed = 0.1;
    }
    if (CmaxSpeed == null)
    {
        CmaxSpeed = 3;
    }

    minSpeed = CminSpeed;
    maxSpeed = CmaxSpeed;
}

我试图在构造函数中将默认值设置为变量,而参数为null。但它永远不会跳转到条件块,即使值为空。因此,结果变量minSpeedmaxSpeed在传递null时始终为null。

我是haxe的唠叨,我真的不明白可空的对象是如何工作的,文档无法帮助我解决这个问题。

1 个答案:

答案 0 :(得分:10)

我认为您的输入值不正确。我创建了一个简单的例子,看看它: http://try.haxe.org/#54200 这对我来说似乎是预期的结果。你基本上是这样做的。

Null<T>的想法是永远不要使用if (bla==0)(因为这真的很糟糕),而是使用if (bla==null)(可空)。这应该有效,否则就是一个错误。

顺便说一句。 try.haxe.org是检查此类功能的好工具。你甚至可以看到JavaScript-target的输出源。在swf-target中(据我所知),一个对象被包裹在浮点数周围,所以如果期望性能,你应该小心处理它。

另外,如果您还没有看到,请查看此内容:http://haxe.org/manual/types-nullability.html