比特垃圾桶(英语:bit bucket)或比特桶计算机行话,指丢失的计算机数据所在的地方。如果数据因传输错误或者系统崩溃丢失,或者其他在任何意义上以任何形式而丢失,就可以说数据被丢进了比特垃圾桶,一个存储着所有丢失地计算机数据的神秘地点,例如:

一个无法通过奇偶校验的错误字节,会被粗暴地丢进比特垃圾桶,一个计算机中的废纸篓。

——Erik Sandberg-Diment,《纽约时报》,1985年6月9日。[1]

价值数百万美元的时间和研究数据进了比特垃圾桶?

——W. Paul Blase,《华盛顿邮报》,1990年2月17日。[2]
Thumb
纸片接收器(或者“比特垃圾桶”),存储着UNIVAC计算机打孔卡片的碎纸。

比特垃圾桶的原始含义是一个电传打字机或者IBM打孔卡片机器上的盒子,用来收集来自纸带或者打孔卡片的纸屑[3]。随后变为了一个形容一切无用数据所去地点的术语,这就是空设备,一个计算机中很有用的概念。[4] 有时,这样的设备也戏仿八十年代一次写入多次读取(英语:Write Once Read Many,缩写:WORM)的磁光碟而被称为“一次写入永不读取”(英语:Write Once Read Never,缩写:WORN)设备。在Signetics公司1972年一篇玩笑数据手册中,一次写入永不读取设备随先进不出队列和只写存储器而一同被提出。在1988年愚人节出版的《Compute!》杂志中,雅达利BASIC语言的作者Bill Wilknson则披露,雅达利在Atari 800系列计算机的操作系统中,作为程序彩蛋实现了一次写入永不读取设备。[5]

在编程语言中,这个术语则指一种不会被诸如中央处理器内存使用,而丢弃向其写入的一些数据的比特流。例如,在.NET框架中则是System.IO.Stream.Null[6]

编程语言

C++11 中提供了std::ignore,其operator=是空操作、即丢弃对其所做的任何赋值,作为占位符搭配std::tie使用。例:

#include <tuple>

struct S{
public:
  bool b;
  int i;
  std::string str;
};
S fn(void){...};

bool b;
int i;
std::tie(b, i, std::ignore)=fn();

如果不这样,那么需要用一个对象来接住返回值:

S sRet=fn();
b=sRet.b;
i=sRet.i;

多了两行代码。

参见

参考资料

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.