老师请问peek是否有bug
来源:4-5 (编程Lexer02 Javascript)——实现流的peek和putBack操作

mike3938797
2020-05-24
测试用例如图
it('test_lookahead2',()=>{
const it = new PeekIterator(arrayToGenerator([..."abcdefg"]))
assert.equal(it.next(),'a')
assert.equal(it.peek(),'b')
assert.equal(it.peek(),'b')
assert.equal(it.next(),'b')
assert.equal(it.next(),'c')
it.putBack()
it.putBack()
assert.equal(it.peek(),'b')
assert.equal(it.next(),'b')
assert.equal(it.next(),'c')
assert.equal(it.next(),'d')
})
如果在putback以后进行peek的话,下一个值就不应该是stackputback的头元素了而应该是尾部元素了
peek(){
if(this.stackPutBacks.length>0){
return this.stackPutBacks.tail
}
const val = this.next()
this.putBack()
return val
}
改造方法如上能通过所有测试用例
写回答
1回答
-
求老仙
2020-05-25
hello,赞。建议到gitlab提mr。
00
相似问题