位元垃圾桶(英語:bit bucket)或位元桶是電腦行話,指遺失的電腦資料所在的地方。如果資料因傳輸錯誤或者系統崩潰遺失,或者其他在任何意義上以任何形式而遺失,就可以說資料被丟進了位元垃圾桶,一個儲存著所有遺失地電腦資料的神秘地點,例如:
一個無法通過奇偶校驗的錯誤位元組,會被粗暴地丟進位元垃圾桶,一個電腦中的廢紙簍。
——Erik Sandberg-Diment,《紐約時報》,1985年6月9日。[1]
價值數百萬美元的時間和研究資料進了位元垃圾桶?
——W. Paul Blase,《華盛頓郵報》,1990年2月17日。[2]
位元垃圾桶的原始含義是一個電傳打字機或者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.