2010-12-01 17 views
2

out_rを使用してキュー内の最後のアイテムを削除するステートメントがあります。キューのリターンの処理:out_r

ドキュメントがリターン

結果= {{値、アイテム}、Q2}であることを言います| {空、Q1}
Q1 = Q2 =キュー()私は削除アイテムとキューを取得したい場合、私はこれを処理するにはどうすればよい

キューを取得して{value、item}を無視するにはどうすればよいですか?

NewQueue = queue:out_r(OldQueue)

おかげ

答えて

3

使用パターンマッチング!両方{value, Item}empty考える

{_, NewQueue} = queue:out_r(OldQueue) 

は、最初の要素は、あなたがやりたいだろう無視して、タプルの最初の要素として返されます。

キューモジュールは3つのAPIをサポートしています。他のAPIは、あなたがよりよくしたいことをするかもしれません。キューが空の場合、それがクラッシュした以外この場合、あなたは、同じ機能を持つことができます。どちらか一方を選ぶ

drop_r(Q1) -> Q2 
Returns a queue Q2 that is the result of removing the rear item from Q1. 
Fails with reason empty if Q1 is empty. 

は、あなたのアプリケーションとどのようなあなたが扱うことができる場合は、キューにあることを期待に依存します空のものなど

+0

キューは開始時に空になります。アイテムを削除するだけです(アイテムの長さがN(常に0より大きい場合)を削除します)アイテムを削除してそのキューを続行します。 – jarryd

+0

上記の2つのオプションのいずれかを選択します。最後の要素を削除しようとしたときにキューが空にならないことが確かであれば、私は個人的に 'drop_r/1'と一緒に行くでしょう。もしあなたのコードが変わってしまったら、早い段階でクラッシュするでしょうできるだけ。だから 'NewQueue = queue:drop_r(OldQueue)'。 –

+0

ありがとうございました。 ;) – jarryd

関連する問題