'foo'到底是什么意思?


232

我希望这可以看作是一个编程问题,因为在任何编程教程中,您最终都会在代码示例中遇到“ foo”。(是的,对吧?)

'foo'到底是什么意思?

如果它的意思是什么什么时候才开始使用它?


先前评论中链接的问题显然已删除。仍可在已删除问题的非官方存档中找到它:stackoverflow.hewgill.com/questions/262/271.html。另请参阅此相关的已删除问题:stackoverflow.hewgill.com/questions/163/229.html
HugoRune

1
这个问题似乎离题,因为它与词源有关
bummi 2013年

1
该问题是题外话,因为它与帮助中心所定义范围内的编程无关。
l4mpi 2014年

3
我投票结束这个问题是离题的,因为这不是编程问题。
Servy

Answers:


138

参见:RFC 3092:“ Foo”的词源,D。Eastlake 3rd等。

为简洁起见,仅引用该RFC中的相关定义:

  1. 非常普遍地用作绝对名称的样本名称,尤其是。程序和文件(尤其是暂存文件)。

  2. 首先是语法示例中使用的元语法变量的标准列表(bar,baz,qux,quux,corge,grault,garply,waldo,fred,plugh,xyzzy,thud)。[行话]


25
哦,太好了。他们有针对Foo的RFC。
马克·汤姆林

5
Mark Tomlin,看看该RFC中的日期。
Windows程序员

6
什么是RFC ;-)?
巴斯蒂安·范丹姆

1
@Pentarex什么是RTFM ;-)?
CodesInChaos

3
RFC-“史蒂夫·克罗克(Steve Crocker)于1969年发明了“征求意见文档”,以帮助记录有关ARPANET开发的非正式记录。此后,这些记录已成为Internet规范,协议,过程和事件的正式记录。” 来源:http
ZygD 2015年

44

foo用作占位符名称,通常在示例代码中用来表示所命名的对象或名称的选择不属于示例的关键所在。如果需要多个这样的名称,foo通常后面跟着barbaz甚至bundy。维基百科将这些名称称为元语法变量。Python程序员理应使用spameggsham,而不是foo

在SA中,foo很好的用法

foo当程序员无法想到一个有意义的名称(例如,代替它tmp)时,我也看到过用过,但是我认为这是对的滥用foo


22

由于“ Foo”的定义具有很多含义:

资源:谷歌


很好的答案,但可能值得添加指向Jargon文件条目的链接:catb.org/jargon/html/F/foo.html
Dave Webb

Google的结果
无法解决

2
Google的结果不是答案<<我不知道。那么,答案是什么?如果你想到一个?没有保证?还是我应该在此处放置指向大量站点的实际链接?我认为stackoverflow必须将内容放在一个地方,而不仅仅是链接到其他站点,这就是我将所有这些内容发布到一个线程中的方式。
卢卡斯·史考夫斯卡斯

嘿,如果您要发布所有与非编程相关的答案,您为什么不留出第二次世界大战飞行员给飞碟看到的且无法识别但假定是敌方战斗机的名字“ foo-fighter”?
Kmeixner


9

foo =文件或对象。它用于代替对象变量或文件名。


7

我认为这毫无意义。维基说:

“ Foo通常与元语法变量bar和foobar一起使用。”


3

用英语写的法语f的声音(如:amour fou)[crazy]是foo,不是吗。其他-foobar-> foo,bar-> barfoo->barfuß(赤脚)。只是ou 没有牙齿的脚。

我同意所有人的观点,这些人提到这意味着:不需要什么有趣的东西,而只是完成一个语句/表达式所需的东西。


我喜欢与其他语言的比较以及它们的不同含义:-D
Matt

3

在我的同事中,“ foo”一词的含义(或更准确地说,是使用)一直用作代表名称示例的占位符。示例包括但不限于yourVariableNameyourObjectNameyourColumnName

今天,出于两个原因,我避免使用“ foo”,而更喜欢使用这种类型的命名替换。

  • 在我的早期,我最初发现在任何示例中使用“ foo”作为表示f'd-up的东西都是令人困惑的。我想要一个有效的例子,而不是愚蠢的东西。
  • 您的结果可能会有所不同,但是我总是100%始终(从不失败)收到更多有关使用“ foo”的实际变量的含义的后续问题。

2

我认为,每个程序员都有自己的“单词”,每次在编程时需要一个任意单词时都会使用该单词。对于某些人来说,这是一首儿童歌曲的第一句话,对于其他人来说,这是它的名字,而对于其他人则完全不同。现在对于程序员社区来说,也有这些“单词”,这些单词是“ foo”和“ bar”。这样做的用途是,如果您必须就编程进行公开交流,则不必说要使用套利字,您只需写“ foo”或“ bar”,并且每个程序员都知道这只是任意字。


2
如果“每个人”都知道这一点,为什么会有那么多人问“ foo”,“ bar”和“ foobar”的含义?Prakash不是第一个提出要求的人。IMO foo,bar和foobar不直观,例如a,b,c,tmp,X,Y,Z,var和func,这就是为什么我认为很多pe
Anders Sandvig

嗯。就是我自己,还是长评论的内容被打乱了?无论如何,剩下的就是“……为什么我认为许多人发现他们分散了注意力”。
安德斯·桑德维格

1
是的,您发表评论的字符数超出了300个;)但是,谢谢!
prakash

我可能只是在开发人员社区中纠结得太深;-)
khebbie 08/09/12

我发现(和发现)他们分心。特别是当第一次尝试破译python时,我认为它们比它们有意义得多。可能是函数或语法的某些部分。虽然我对** kwargs也有同样的问题。我本能地试图记住这样的东西。写下来。直到有人告诉我“只要使用**,使用什么短语都没关系”。当您意识到它所代表的含义时,至少可以理解“ kwargs”。像“ foo”这样的东西只是令人困惑的“神秘”。为了开玩笑,他们觉得自己像开玩笑。
OmikronWeapon
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.