Выбор ответа Middle Потоки и буферы обновлено

subarray копирует или нет

Вопрос

Что выведет код?

const b = Buffer.from('abc');
const part = b.subarray(0, 2);
part[0] = 0x7a; // 'z'
console.log(b.toString());

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: zbc. subarray возвращает новое представление той же памяти без копирования.

Варианты ответа

  1. abc
  2. TypeError: буфер только для чтения
  3. zb
  4. zbcправильный ответ

Разбор

subarray возвращает новое представление той же памяти без копирования. Изменение part[0] меняет и b. Нужна копия: Buffer.from(b.subarray(0, 2)).

  • abc было бы при копировании.
  • zb это содержимое part, а выводим b.
  • Буферы изменяемые.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.