我有一个声明,我想使用out_r删除队列中的最后一项。
文件说回报是
结果= {{value,Item},Q2} | {empty,Q1}
Q1 = Q2 = queue()
如果我只是想删除项目的队列,我该如何处理?
如何获取队列并忽略{value,item}?
e.g。
NewQueue = queue:out_r(OldQueue)
由于
答案 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.
挑选一个或另一个取决于您的应用程序以及您希望在队列中的内容,如果您可以处理空的等等。