处理队列的返回:out_r

时间:2010-12-01 11:30:17

标签: erlang

我有一个声明,我想使用out_r删除队列中的最后一项。

文件说回报是

  

结果= {{value,Item},Q2} | {empty,Q1}
      Q1 = Q2 = queue()

如果我只是想删除项目的队列,我该如何处理?

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

e.g。 NewQueue = queue:out_r(OldQueue)

由于

1 个答案:

答案 0 :(得分: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.

挑选一个或另一个取决于您的应用程序以及您希望在队列中的内容,如果您可以处理空的等等。