foo,bar?ijk?細數‘奇葩’的變數名
相信很多剛開始學程式設計的人一定用過i,j,k這些個簡單的變數,一開始可能還有點疑惑,為什麼直接從i開始而不從a開始呢?這種做法完全不符合人類的基本思維啊。
其實,這就和為什麼電腦是從C盤開始算而非A盤開始算是一樣的原因----一切都是歷史淵源。
臨時變數喜歡起名叫做i, j, k,這都是從Fortran傳來的。語言預設以 I, J, K, L, M, N為第一個字母的變數名是整型,其它字母開頭的變數是實型。所以呢,用個臨時變數,第一想到的就是i, j, k。就這麼簡單,寫個臨時變數誰會想那麼多?至於Fortran為什麼預設I,J,K為第一個字母的變數名為整型,也許是John Backus最愛字母i,也許是John Backus把i看成iterate,並把後面的字母一起作為變數名,未可知。
foo,bar也是如此。
“foo” 一詞最早出現在一些二戰前的漫畫和卡通作品中。在關於消防隊員的漫畫“Smokey Stover”中,作者Bill Holman大量的使用了“foo”一詞。這部漫畫連載於1930至1952年,在其中,“foo”這個詞經常出現在汽車車牌上和一些沒有意義的對話中, 例如:“He who foos last foos best”或 “Many smoke but foo men chew”等。根據作者自己介紹,“foo”是根據某種中國的小雕像底部的文字得來的。這聽起來很有道理,因為中國的雕像往往都會刻上祝福的文字,而 “foo”可能是“福”的音譯。不過英文文法能接納Holman的“foo”這個編造的單詞,也是受了猶太語中“feh”和英文中“fooey”及 “fool”的影響。Holman在漫畫中還描繪一種很有特色的二輪消防車,並取名為Foomobile。因為他的漫畫在上個世紀三十年代極為流行,以至於一度有傳言說印弟安那州已經生產出了這種可以使用的Holman式Foomobile。根據美國漫畫百科全書 (Encyclopedia of American Comics, EAC) 的講法,“Foo”一詞曾在美國掀起一陣狂熱,它被用到了很多流行歌曲中,併產生了超過五百個“Foo俱樂部”。華納公司在1938年製作的動畫片“達菲 鴨”中,也使用了“foo”這個詞。雖然“foo”廣泛的融入了流行文化中,但它的起源卻被人遺忘了。在隨後的二戰中,因為英美士兵經常 用俚語和粗話交流,“foo”一詞就被更廣泛的傳開了。人們把被雷達追蹤到的神秘飛行物稱為“foo戰機”(“foo fighter”),就是後來所謂的UFO。而當英國士兵回防時,往往也會刻下“foo到此一遊”(“Foo was here.”)的字眼。
而關於“foobar”,也可以追溯到二戰時期軍隊中的粗話縮寫“FUBAR”。“FUBAR”的含義是用到爛再大修(Fucked Up Beyond All Repair),後來演變成了“foobar”。漸漸地,foo和bar成為了甲乙丙丁的代名詞。(如此看來,還是中文強大啊,直接造一個甲乙丙丁)
一切都是有淵源的。而這些淵源可能源於一個不經意的瞬間。
題外話,注重每一件小事,也許它將流傳千古,別搞砸了。
參考資料:[1]
[2] http://www.cnblogs.com/lichence/archive/2011/05/27/2059600.html
其實,這就和為什麼電腦是從C盤開始算而非A盤開始算是一樣的原因----一切都是歷史淵源。
臨時變數喜歡起名叫做i, j, k,這都是從Fortran傳來的。語言預設以 I, J, K, L, M, N為第一個字母的變數名是整型,其它字母開頭的變數是實型。所以呢,用個臨時變數,第一想到的就是i, j, k。就這麼簡單,寫個臨時變數誰會想那麼多?至於Fortran為什麼預設I,J,K為第一個字母的變數名為整型,也許是John Backus最愛字母i,也許是John Backus把i看成iterate,並把後面的字母一起作為變數名,未可知。
foo,bar也是如此。
“foo” 一詞最早出現在一些二戰前的漫畫和卡通作品中。在關於消防隊員的漫畫“Smokey Stover”中,作者Bill Holman大量的使用了“foo”一詞。這部漫畫連載於1930至1952年,在其中,“foo”這個詞經常出現在汽車車牌上和一些沒有意義的對話中, 例如:“He who foos last foos best”或 “Many smoke but foo men chew”等。根據作者自己介紹,“foo”是根據某種中國的小雕像底部的文字得來的。這聽起來很有道理,因為中國的雕像往往都會刻上祝福的文字,而 “foo”可能是“福”的音譯。不過英文文法能接納Holman的“foo”這個編造的單詞,也是受了猶太語中“feh”和英文中“fooey”及 “fool”的影響。Holman在漫畫中還描繪一種很有特色的二輪消防車,並取名為Foomobile。因為他的漫畫在上個世紀三十年代極為流行,以至於一度有傳言說印弟安那州已經生產出了這種可以使用的Holman式Foomobile。根據美國漫畫百科全書 (Encyclopedia of American Comics, EAC) 的講法,“Foo”一詞曾在美國掀起一陣狂熱,它被用到了很多流行歌曲中,併產生了超過五百個“Foo俱樂部”。華納公司在1938年製作的動畫片“達菲 鴨”中,也使用了“foo”這個詞。雖然“foo”廣泛的融入了流行文化中,但它的起源卻被人遺忘了。在隨後的二戰中,因為英美士兵經常 用俚語和粗話交流,“foo”一詞就被更廣泛的傳開了。人們把被雷達追蹤到的神秘飛行物稱為“foo戰機”(“foo fighter”),就是後來所謂的UFO。而當英國士兵回防時,往往也會刻下“foo到此一遊”(“Foo was here.”)的字眼。
而關於“foobar”,也可以追溯到二戰時期軍隊中的粗話縮寫“FUBAR”。“FUBAR”的含義是用到爛再大修(Fucked Up Beyond All Repair),後來演變成了“foobar”。漸漸地,foo和bar成為了甲乙丙丁的代名詞。(如此看來,還是中文強大啊,直接造一個甲乙丙丁)
一切都是有淵源的。而這些淵源可能源於一個不經意的瞬間。
題外話,注重每一件小事,也許它將流傳千古,別搞砸了。
參考資料:[1]
[2] http://www.cnblogs.com/lichence/archive/2011/05/27/2059600.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18903360/viewspace-2120782/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle中的替換變數,&變數名,&&變數名說明Oracle變數
- PHP的可變變數名PHP變數
- MySQL中的@變數名MySql變數
- 幽默:請在教程示例中停止使用foo和bar,請使用真實名稱 - CaitlynAI
- 變數名命名規則變數
- JS建立動態的變數名JS變數
- 給出 Python 中變數名的列表,如何建立一個具有變數名稱作為鍵的字典 (到變數的值)Python變數
- GO 變數使用細節Go變數
- error: ‘變數名‘ does not name a type|Error變數
- 史上最糟糕的兩個變數名變數
- python 獲取變數名的方法Python變數
- 世上最糟糕的兩個變數名變數
- 求大家幫助,Jmeter 變數為 null 時,輸出的是變數名,如何不輸出變數名原樣輸出 null?JMeter變數Null
- 變數的分類(臨時(本地)變數、環境變數、全域性變數和系統變數)變數
- 反射可以取到原始呼叫方法的變數名嗎?反射變數
- 成員變數、全域性變數、例項變數、類變數、靜態變數和區域性變數的區別變數
- JavaScript 變數名和函式名相同JavaScript變數函式
- JS如何動態生成變數名[重點]JS變數
- ES6 let聲名變數總結變數
- 推薦個起變數名的PHPSTORM的外掛變數PHPORM
- 細述:nginx http核心模組提供的變數和解釋NginxHTTP變數
- 細談sass和less中的變數及其作用域變數
- Python快速入門第二彈合法的變數名Python變數
- iOS 靜變數static、全域性變數extern、區域性變數、例項變數iOS變數
- Python 動態變數名與呼叫介紹Python變數
- Python 動態變數名定義與呼叫Python變數
- Python動態變數名定義與呼叫Python變數
- python 列出皮膚資料所有變數名Python變數
- Robot Framework(12)- 詳細解讀 RF 的變數和常量Framework變數
- 不用第三個變數,交換變數的值變數
- 淺談變數型別之外的變數命名變數型別
- volatile變數與普通變數的區別變數
- Python中類變數、成員變數、區域性變數的區別Python變數
- PHP 引用變數名與 foreach 中 $val 同名時發生的變化PHP變數
- javaScript的變數JavaScript變數
- PLSQL的變數SQL變數
- 引數和變數變數
- 【勝通 】mysql的引數變數MySql變數