6
把這個代碼:Haxe通過引用傳遞參數還是複製副本?
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();
}
是「textureAtlas」獲得通過引用傳遞或者它被複制?
http://api.haxeflixel.com/flixel/util/loaders/SparrowData.html
我知道PHP按引用傳遞對象,事情就是這樣數組被複制,除非另有說明(與&前綴)。 Haxe也適用嗎?
謝謝。
「原始材料」也可以考慮通過參考。它只是它們是不變的,這意味着通過ref/value甚至不重要。 –
實際上,我會說Haxe中的所有東西都是按值傳遞的,其中基本類型(Bool,Int,Float)直接複製到對象和其他類型的引用被複制的地方。 Bool,Int,Float和String總是不變的,並且通過值進行比較。無論是否複製字符串或複製引用,我認爲它們都是特定於目標的,但由於它們是不可變的,所以它並不重要。 –