buf.fill(value[, offset[, end]][, encoding])
Версия | Изменения |
---|---|
v11.0.0 | Бросает ERR_OUT_OF_RANGE вместо ERR_INDEX_OUT_OF_RANGE этого . |
v10.0.0 | Отрицательные end значения приводят ERR_INDEX_OUT_OF_RANGE к ошибке. |
v10.0.0 | Попытка заполнить буфер ненулевой длины буфером нулевой длины вызывает исключение. |
v10.0.0 | Указание недопустимой строки для value запуска вызванного исключения. |
v5.7.0 | Теперь этот encoding параметр поддерживается. |
v0.5.0 | Добавлено в: v0.5.0 |
value
<строка> | <Буфер> | <Uint8Array> | <целое число> Значение, которым нужно заполнитьbuf
.offset
<целое число> Количество байтов, которые необходимо пропустить перед началом заполненияbuf
.- По умолчанию:
0
. end
<целое число> Где остановить заполнениеbuf
(не включено).- По умолчанию:
buf.length
. encoding
<строка> Кодировкаvalue
ifvalue
— это строка.- По умолчанию:
'utf8'
. - Возвращает: <Буфер> Ссылку на
buf
.
buf
Заполняется указанным value
. Если offset
и end
не указаны, то все buf
будет заполнено:
import { Buffer } from 'buffer';
// Fill a `Buffer` with the ASCII character 'h'.
const b = Buffer.allocUnsafe(50).fill('h');
console.log(b.toString());
// Prints: hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
const { Buffer } = require('buffer');
// Fill a `Buffer` with the ASCII character 'h'.
const b = Buffer.allocUnsafe(50).fill('h');
console.log(b.toString());
// Prints: hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
value
приводится к uint32
значению, если оно не является строкой Buffer
или целым числом. Если полученное целое число больше 255
(десятичное), buf
будет заполнено value & 255
.
Если окончательная запись fill()
операции приходится на многобайтовый символ, то записываются только байты этого символа, которые вписываются в buf
:
import { Buffer } from 'buffer';
// Fill a `Buffer` with character that takes up two bytes in UTF-8.
console.log(Buffer.allocUnsafe(5).fill('\u0222'));
// Prints: <Buffer c8 a2 c8 a2 c8>
const { Buffer } = require('buffer');
// Fill a `Buffer` with character that takes up two bytes in UTF-8.
console.log(Buffer.allocUnsafe(5).fill('\u0222'));
// Prints: <Buffer c8 a2 c8 a2 c8>
Если value
содержит недопустимые символы, он усекается; если не остается допустимых данных заполнения, создается исключение:
import { Buffer } from 'buffer';
const buf = Buffer.allocUnsafe(5);
console.log(buf.fill('a'));
// Prints: <Buffer 61 61 61 61 61>
console.log(buf.fill('aazz', 'hex'));
// Prints: <Buffer aa aa aa aa aa>
console.log(buf.fill('zz', 'hex'));
// Throws an exception.
const { Buffer } = require('buffer');
const buf = Buffer.allocUnsafe(5);
console.log(buf.fill('a'));
// Prints: <Buffer 61 61 61 61 61>
console.log(buf.fill('aazz', 'hex'));
// Prints: <Buffer aa aa aa aa aa>
console.log(buf.fill('zz', 'hex'));
// Throws an exception.
Буфер — это временное хранилище памяти, в котором хранятся данные при их перемещении из одного места в другое. Это похоже на массив целых чисел.
Метод Buffer.fill() помещает данные в экземпляр буфера. Если смещение и конечное значение не заданы, то будет заполнен полный буфер.
Синтаксис:
buffer.fill( string, offset, end, encoding )
Параметры: Этот метод принимает четыре параметра, как указано выше и описано ниже:
- string (строка): Он содержит данные, которые вам нужно поместить в буфер.
- start (начало): Индекс, с которого нужно начать заполнение буфера. Его значение по умолчанию равно 0.
- end (конец): Индекс, до которого вам нужно заполнить буфер. Значение по умолчанию-buffer.length
- encoding (кодирование): Кодировка данных, если данные в строковом формате. Значение по умолчанию-utf8.
Return Value (Возвращаемое Значение): Этот метод возвращает объект буфера, содержащий значения.
Ниже приведены примеры, иллюстрирующие использование Метод Buffer.fill() в Node.js:
Пример 1:
// Node.js program to demonstrate the
// Buffer.fill() Method
// Allocating the space to buffer instance
var buffer = Buffer.alloc(13);
buffer.fill('programbox');
console.log(buffer.toString());
Выход:
programbox
Пример 2:
// Node.js program to demonstrate the
// Buffer.fill() Method
// Allocating the space to buffer instance
var buffer = Buffer.alloc(7);
buffer.fill('geek', 3);
// Prints : ' geek' as we are starting
// from index 3 to fill the buffer
console.log(buffer.toString());
Выход:
geek
Примечание: Вышеуказанная программа будет скомпилирована и запущена с помощью node index.js
команда.
Ссылка: https://nodejs.org/api/buffer.html#buffer_buf_fill_value_offset_end_encoding