просто не на Java пишу, а мне этот код надо сделать на другом языке, и не понятно каким образом тут происходит получение элементов из списка. Типо изначально позиция вообще не зарезервирована, как я понимаю она равна 0, а потом в lexemes.get(pos++) происходит для меня магия, получается элемент с индексом 0 и потом pos + 1?
public static class LexemeBuffer {
private int pos;
public List<Lexeme> lexemes;
public LexemeBuffer(List<Lexeme> lexemes) {
this.lexemes = lexemes;
}
public Lexeme next() {
Lexeme lexeme = lexemes.get(pos++);
System.out.println("get in buffer: " + lexeme.value);
return lexeme;
}
public void back() {
pos--;
}
public int getPos() {
return pos;
}
}
Всё так. Сначала pos = 0 (в Java примитивы = 0 явно всегда), потом в первом вызове lexemes.get(pos) возвращается и инкрементится pos на 1 и так далее.
черт, а почему у меня на питоне тогда алгоритм иначе работает)
а get ссылку создает или забирает значение?
Обсуждают сегодня