buf.fill(value[, offset[, end]][, encoding])
历史
版本 | 变化 |
---|---|
v11.0.0 | 抛出 |
v10.0.0 | 负 |
v10.0.0 | 尝试用零长度缓冲区填充非零长度缓冲区会触发抛出的异常。 |
v10.0.0 | 为 |
v5.7.0 | 现在支持 |
v0.5.0 | 添加于:v0.5.0 |
参数
value
<string> | <Buffer> | <Uint8Array> | <integer> 要填充的值buf
。offset
<integer> 开始填充之前要跳过的字节数buf
。 默认:0
。end
<integer> 在哪里停止填充buf
(不包括在内)。 默认:buf.length
encoding
<string> 如果value
是字符串,则value
的编码。 默认:'utf8'
。- 返回: <Buffer> 对
buf
的引用。
用指定的 value
填充 buf
。如果没有给出offset
和end
,则将填充整个buf
:
import { Buffer } from 'node: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('node:buffer'); // Fill a `Buffer` with the ASCII character 'h'. const b = Buffer.allocUnsafe(50).fill('h'); console.log(b.toString()); // Prints: hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
如果 value
不是字符串、Buffer
或整数,则 value
被强制转换为 uint32
值。如果结果整数大于 255
(十进制),则 buf
将用 value & 255
填充。
如果 fill()
操作的最终写入落在 multi-byte 字符上,则仅写入适合 buf
的该字符的字节:
import { Buffer } from 'node: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('node: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 'node: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('node: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.
相关用法
- Node.js Buffer buf.writeBigUInt64BE(value[, offset])用法及代码示例
- Node.js Buffer buf.toString([encoding[, start[, end]]])用法及代码示例
- Node.js Buffer buf.writeDoubleLE(value[, offset])用法及代码示例
- Node.js Buffer buf.writeBigInt64LE(value[, offset])用法及代码示例
- Node.js Buffer buf.keys()用法及代码示例
- Node.js Buffer buf.writeFloatLE(value[, offset])用法及代码示例
- Node.js Buffer buf.indexOf(value[, byteOffset][, encoding])用法及代码示例
- Node.js Buffer buf.readFloatLE([offset])用法及代码示例
- Node.js Buffer buf.readInt32LE([offset])用法及代码示例
- Node.js Buffer buf.writeInt8(value[, offset])用法及代码示例
- Node.js Buffer buf.swap32()用法及代码示例
- Node.js Buffer buf.writeInt32LE(value[, offset])用法及代码示例
- Node.js Buffer buf.writeIntLE(value, offset, byteLength)用法及代码示例
- Node.js Buffer buf.values()用法及代码示例
- Node.js Buffer buf.writeDoubleBE(value[, offset])用法及代码示例
- Node.js Buffer buf.length用法及代码示例
- Node.js Buffer buf.byteOffset用法及代码示例
- Node.js Buffer buf.readUInt32BE([offset])用法及代码示例
- Node.js Buffer buf.readDoubleLE([offset])用法及代码示例
- Node.js Buffer buf.writeFloatBE(value[, offset])用法及代码示例
- Node.js Buffer buf.readBigUInt64LE([offset])用法及代码示例
- Node.js Buffer buf.readUInt16BE([offset])用法及代码示例
- Node.js Buffer buf.writeInt16BE(value[, offset])用法及代码示例
- Node.js Buffer buf.swap64()用法及代码示例
- Node.js Buffer buf.readUInt8([offset])用法及代码示例
注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 buf.fill(value[, offset[, end]][, encoding])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。