6
Prendete questo codice:Haxe passa i parametri per riferimento o ne fa una copia?
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
/**
* @param lives
* @param corn
* @param textureAtlas
*/
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();
}
significa 'textureAtlas' viene passato per riferimento o vuol vengono copiati?
http://api.haxeflixel.com/flixel/util/loaders/SparrowData.html
so PHP passa gli oggetti di riferimento, e le cose come le matrici vengono copiati se non diversamente specificato (prefisso &). Lo stesso vale per Haxe?
Grazie.
I "primitivi" possono essere considerati anche per riferimento. Sono semplicemente immutabili, il che significa che per valore/valore non importa nemmeno. –
In realtà, direi che tutto in Haxe viene passato per valore, dove i tipi di base (Bool, Int, Float) vengono copiati direttamente dove gli oggetti e altri tipi hanno copiato i loro riferimenti. Bool, Int, Float e String sono sempre immutabili e confrontati in base al valore. Indipendentemente dal fatto che le stringhe siano copiate o che i loro riferimenti siano copiati, penso che sia specifico per l'obiettivo, ma dato che sono immutabili non ha molta importanza. –