Выбор ответа Middle Потоки и буферы обновлено
subarray копирует или нет
Вопрос
Что выведет код?
const b = Buffer.from('abc');
const part = b.subarray(0, 2);
part[0] = 0x7a; // 'z'
console.log(b.toString());
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: zbc. subarray возвращает новое представление той же памяти без копирования.
Варианты ответа
abc- TypeError: буфер только для чтения
zbzbcправильный ответ
Разбор
subarray возвращает новое представление той же памяти без копирования. Изменение part[0] меняет и b. Нужна копия: Buffer.from(b.subarray(0, 2)).
abcбыло бы при копировании.zbэто содержимоеpart, а выводимb.- Буферы изменяемые.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «Потоки и буферы»
- Пачки из асинхронного итератора
- Разбиение потока на строки по чанкам
- Запись с учётом backpressure
- Итоги платежей из CSV-выгрузки
- Слияние k отсортированных логов
- Топ эндпоинтов по access-логу с нормализацией маршрутов
- Сессии пользователей по потоку событий
- Код-ревью: выгрузка и загрузка больших файлов