スタックの一番下にあるオブジェクトを取得するという仕様で ActionScript ByteCode パーサーを作成しています。私が知る限り、ActionScript 仮想マシン (AVM) のスタックの一番下は、最初にスタックにプッシュされたオブジェクトです。一番下に到達するためだけに、スタックからすべてのアイテムをポップすることは本当に避けたいです。一番下のアイテムを入手できるかどうか知っている人はいますか?そうでない場合は、AVM が行ういくつかの気紛れなこと :P
ありがとう、ジョシュ
定義上不可能です。スタックの各要素は、その前の要素についてしか知らないため、従来のスタック実装では、スタックの一番下の要素のアドレスはわかりません。別の structore を使用してオブジェクトを格納します。(例:リスト)
あなたがやろうとしていることは、スタックの目的に反しています。ただし、ラッパー クラスを作成することはできます。
Push メソッドが呼び出され、スタックが空になったら、そのオブジェクトをスタックに追加し、クラスに参照を保持します。Pop メソッドが呼び出され、スタックにオブジェクトが 1 つしかない場合は、参照をクリアします。
ToArray() を使用できます。
var stackArray = myStack.ToArray();
そして、ちょうど:
stackArray.Lenght - 1
最後の要素にアクセスします。