170 похожих чатов

Дорогие друзья, объясните как в функции next работает получение лексемы? Я

просто не на 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;
}
}

4 ответов

15 просмотров

Всё так. Сначала pos = 0 (в Java примитивы = 0 явно всегда), потом в первом вызове lexemes.get(pos) возвращается и инкрементится pos на 1 и так далее.

Anton Ermak
Всё так. Сначала pos = 0 (в Java примитивы = 0 явн...

черт, а почему у меня на питоне тогда алгоритм иначе работает)

Anton Ermak
Всё так. Сначала pos = 0 (в Java примитивы = 0 явн...

а get ссылку создает или забирает значение?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта