2012-11-10 30 views
0

我正在寫一個ActionScript ByteCode解析器,在規範中說要獲取堆棧底部的對象。現在,據我所知,ActionScript Virtual Machine(AVM)中的堆棧底部是首先被推入堆棧的對象。我真的很想避免將所有物品從堆疊中彈出,以便達到底部。有誰知道是否有可能獲得最低價格?如果不是這樣,它的一些怪異的東西AVM做:P如何窺視堆棧底部的物體?

謝謝,喬希

回答

1

你想要做的是違背堆棧的目的。但是你可以編寫一個包裝類。

當Push方法被調用並且堆棧爲空時,將它添加到堆棧中,並在類中保留一個引用。當調用Pop方法時,堆棧只有一個對象清除引用。

2

它通過定義是不可能的。堆棧中的每個元素只知道他之前的元素,所以在實現堆棧的時候,你不知道堆棧中底層元素的地址。 使用另一個結構來存儲對象。 (例如列表)

+0

好的,我試圖避免使用不同的類型作爲堆棧正是這裏所需要的。 – jduncanator

+1

你可以在堆棧周圍製作自己的包裝並將最下面的物品存儲在包裝中... –

+0

也許,謝謝你:) – jduncanator