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] https://www.zhihu.com/question/22321588
     [2 ] http://www.cnblogs.com/lichence/archive/2011/05/27/2059600.html

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/18903360/viewspace-2120782/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/18903360/viewspace-2120782/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值