236

我希望这是一个编程问题,就像在任何编程教程中一样,您最终会在代码示例中遇到“foo”。(是的,对吧?)

'foo' 的真正含义是什么?

如果它意味着什么都没有,那么它是什么时候开始使用的?

4

9 回答 9

140

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

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

  1. 非常普遍地用作绝对任何东西的样本名称,尤其是。程序和文件(尤其是暂存文件)。
  1. 首先是语法示例中使用的元语法变量的标准列表(bar、baz、qux、quux、corge、grault、garply、waldo、fred、plugh、xyzzy、thud)。[行话]
于 2009-02-19T18:09:28.287 回答
44

foo用作占位符名称,通常在示例代码中表示被命名的对象或名称的选择不是示例的关键部分。如果需要多个这样的名称,foo则通常后跟bar, baz,甚至。bundy维基百科称这些名称为元句法变量。Python 程序员应该使用spam, eggs, ham, 而不是foo, 等等。

foo在 SA 中有很好的用途。

foo当程序员想不出一个有意义的名称时,我也看到过使用(例如,作为 . 的替代品tmp),但我认为这是对foo.

于 2008-09-12T10:22:50.870 回答
22

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

资源:谷歌

于 2008-09-10T08:27:11.163 回答
11

这是一个元句法变量

于 2008-09-10T08:23:42.887 回答
10

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

于 2016-04-06T20:55:26.080 回答
7

我认为这意味着没有任何意义。维基说:

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

于 2008-09-10T08:23:00.550 回答
3

法语 fou 的声音,(如:amour fou)[crazy] 用英语写成,会是 f​​oo,不是吗。否则 furchtbar -> foobar -> foo, bar -> barfoo -> barfuß(赤脚)。只是你。没有牙齿的脚。

我同意所有提到它的人的意思:没有什么有趣的,只是一些东西,通常需要完成一个语句/表达式。

于 2010-05-10T04:39:24.107 回答
3

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

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

  • 在我早期的日子里,我最初发现在任何示例中使用“foo”作为放置来表示某些东西是令人困惑的。我想要一个工作示例,而不是 foobar。
  • 您的结果可能会有所不同,但我总是 100%,每次,从未失败,得到更多关于使用“foo”的实际变量的含义的后续问题。
于 2015-03-14T13:23:41.587 回答
2

在我看来,每个程序员都有他或她自己的“词”,每次你在编程时需要一个任意词时都会使用这些“词”。对一些人来说,这是一首儿歌的第一句话,对另一些人来说是名字,而对另一些人来说则是完全不同的东西。现在对于程序员社区来说,也有这些“词”,这些词是“foo”和“bar”。这样做的用途是,如果您必须公开交流有关编程的信息,您不必说您会使用任意词,您只需写“foo”或“bar”,每个程序员都知道这只是任意词。

于 2008-09-10T11:47:04.177 回答