2015-09-30 14 views
6

Hãy mã này:Thông số Haxe có truyền tham chiếu hay tham chiếu không?

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(); 
} 

Liệu 'textureAtlas' được thông qua tham khảo hay nó được sao chép?

http://api.haxeflixel.com/flixel/util/loaders/SparrowData.html

Tôi biết PHP qua đối tượng bằng cách tham khảo, và những thứ như Mảng được sao chép trừ khi có quy định khác (bắt đầu bằng &). Điều tương tự cũng áp dụng với Haxe?

Cảm ơn bạn.

Trả lời

5

AFAIK, nguyên thủy (Int, Float, Bool, ...) được chuyển theo giá trị. Mọi thứ khác được chuyển qua tham chiếu.

+5

"Nguyên thủy" có thể được xem xét cũng được chuyển qua tham chiếu. Nó chỉ là họ là bất biến có nghĩa là bởi ref/giá trị thậm chí không quan trọng. –

+0

Thực ra, tôi sẽ nói rằng mọi thứ trong Haxe được truyền theo giá trị, trong đó các kiểu cơ bản (Bool, Int, Float) được sao chép trực tiếp khi các đối tượng và các kiểu khác được sao chép. Bool, Int, Float và String luôn luôn bất biến và so sánh theo giá trị. Có hay không Strings được sao chép hoặc có tham chiếu của họ sao chép tôi nghĩ là mục tiêu cụ thể, nhưng vì họ là bất biến nó không thực sự quan trọng. –

Các vấn đề liên quan