【问题标题】:Does Haxe pass parameters by reference or does it make a copy?Haxe 是通过引用传递参数还是复制?
【发布时间】:2015-09-30 20:25:48
【问题描述】:

获取此代码:

function createGUIHud():Void
{
    this.screen.gameHud = new NormalGameHud(10, 0, this.screen.getTextureAtlas());
    this.screen.gameHud.x = FlxG.width - (this.screen.gameHud.width + GameSize.getPositionByPlatform(10));
    this.screen.gameHud.y = GameSize.getPositionByPlatform(10);
}

// NormalGameHud.hx

public function new(lives:Int = 10, corn:Int = 0, textureAtlas:SparrowData) 
{
    super(0, 0, 30);
    this.lives = lives;
    this.cornCount = corn;
    this.textureAtlas = textureAtlas;

    this.createScoreboard();
    this.createLivesCount();
    this.createCornCounter();
}

textureAtlas 是通过引用传递还是被复制?

我知道 PHP 通过引用传递对象,除非另有说明(以 & 为前缀),否则会复制诸如数组之类的内容。 Haxe 也一样吗?

【问题讨论】:

    标签: haxe


    【解决方案1】:

    AFAIK、Basic TypesIntFloatBool)按值传递。其他所有内容都通过引用传递。

    【讨论】:

    • “Primitives”也可以认为是通过引用传递的。只是它们是不可变的,这意味着 ref/value 甚至无关紧要。
    • 实际上,我想说 Haxe 中的所有内容都是按值传递的,其中基本类型(Bool、Int、Float)直接复制,而对象和其他类型的引用复制。 Bool、Int、Float 和 String 始终是不可变的并按值进行比较。我认为是否复制字符串或复制其引用是特定于目标的,但由于它们是不可变的,这并不重要。
    猜你喜欢
    • 2016-06-11
    • 2012-02-03
    • 2011-05-06
    • 2014-07-26
    • 2020-04-01
    • 2012-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多