2010-12-01 35 views
2

我有一个声明,我想用out_r删除队列中的最后一个项目。处理队列的返回:out_r

的文件说,返回的是

结果= {{值,项目},Q2} | {空,Q1}
Q1 = Q2 =队列()

如何处理,如果我只是想获得队列的项目去掉?

如何获得队列并忽略{value,item}?

例如 NewQueue = queue:out_r(OldQueue)

感谢

回答

3

使用模式匹配!

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

鉴于两件{value, Item}empty返回的元组的第一个元素,忽略第一个元素会做你想要什么。

请注意,队列模块支持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 2010-12-01 15:48:55