【问题标题】:What does 'foo' really mean? [closed]'foo' 的真正含义是什么? [关闭]
【发布时间】:2010-09-08 09:23:34
【问题描述】:

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

“foo”的真正含义是什么?

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

【问题讨论】:

标签: language-agnostic coding-style


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    【讨论】:

      【解决方案3】:

      因为“Foo”的定义有很多含义:

      资源:google

      【讨论】:

      • 很好的答案,但可能值得放置一个指向行话文件条目的链接:catb.org/jargon/html/F/foo.html
      • Google 结果不是答案
      • Google 结果不是答案
      • 嘿,如果您要发布所有与编程无关的答案,为什么要省略二战飞行员给他们看到但无法识别的不明飞行物的名字“foo-fighter”?假定是敌方战士?
      【解决方案4】:

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

      【讨论】:

      • 如果“每个人”都知道这一点,为什么这么多人问“foo”、“bar”和“foobar”的含义? Prakash 不是第一个提出问题的人。 IMO foo、bar 和 foobar 不直观,像 a、b、c、tmp、X、Y、Z、var 和 func,这就是为什么我认为很多 pe
      • 嗯.. 是我一个人,还是长cmets的渲染坏了?无论如何,剩下的就是“......为什么我认为很多人会觉得他们分心。”
      • 是的,您的评论超过了 300 个字符的限制;)但是谢谢!
      • 我可能只是在开发者社区中纠缠得太深了;-)
      • 我发现(并且发现)它们让人分心。尤其是在第一次尝试破译 python 时,我认为它们比它们更有意义。也许是一个函数,或者是语法的一部分。尽管我对 **kwargs 之类的东西也有同样的问题。我本能地试图记住这样的东西。到了写下来的地步。直到有人告诉我“只要你有 **,你用什么短语都没有关系”。当你意识到它代表什么时,至少“kwargs”是有意义的。像“foo”这样的东西只是令人困惑的“神秘”。他们觉得自己是为了开玩笑而开玩笑。
      【解决方案5】:

      foo 用作占位符名称,通常在示例代码中表示被命名的对象或名称的选择不是示例的关键部分。 foo 后面经常跟barbaz,甚至bundy,如果需要多个这样的名称。维基百科称这些名称为Metasyntactic Variables。 Python 程序员应该使用spameggsham,而不是foo 等。

      SA中有good uses of foo

      我也见过foo在程序员想不出一个有意义的名字时使用(比如说,作为tmp的替代品),但我认为这是对foo的滥用。

      【讨论】:

        【解决方案6】:

        见:RFC 3092: Etymology of "Foo", D. Eastlake 3rd et al.

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

        1. 非常普遍地用作绝对任何东西的样本名称,尤其是。 程序和文件(尤其是暂存文件)。
        1. 在使用的元句法变量的标准列表中排名第一 语法示例(bar、baz、qux、quux、corge、grault、garply、 waldo、fred、plugh、xyzzy、thud)。 [行话]

        【讨论】:

        • 哦,这太棒了。他们有 Foo 的 RFC。
        • 马克汤姆林,看看那个 RFC 中的日期。
        • 什么是 RFC ;-) ?
        • @Pentarex 什么是 RTFM ;-)?
        • RFC - “征求意见文件由 Steve Crocker 在 1969 年发明,用于帮助记录有关 ARPANET 发展的非官方注释。它们已成为 Internet 规范、协议、程序和事件”。来源:http://www.livinginternet.com
        【解决方案7】:

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

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

        【讨论】:

        • 我喜欢与其他语言的比较以及它们的不同含义:-D
        【解决方案8】:

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

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

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

        【讨论】:

          【解决方案9】:

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

          【讨论】:

            猜你喜欢
            • 2014-11-30
            • 2021-12-26
            • 2017-05-06
            • 2012-03-30
            • 2011-10-10
            • 2012-08-03
            • 2012-01-30
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多