Was bedeutet "foo" wirklich?


232

Ich hoffe, dies ist eine Programmierfrage, da Sie in jedem Programmier-Tutorial in den Codebeispielen auf "foo" stoßen. (ja, genau?)

Was bedeutet "foo" wirklich?

Wenn es nichts bedeuten soll , wann wurde es so verwendet?


Die im vorherigen Kommentar verlinkte Frage wurde anscheinend gelöscht. Es ist weiterhin im inoffiziellen Archiv gelöschter Fragen verfügbar : stackoverflow.hewgill.com/questions/262/271.html . Siehe auch diese verwandte gelöschte Frage: stackoverflow.hewgill.com/questions/163/229.html
HugoRune

1
Diese Frage scheint nicht zum Thema zu gehören, da es sich um Etymologie handelt
bummi

1
Diese Frage ist nicht thematisch, da es nicht um die Programmierung innerhalb des in der Hilfe definierten Bereichs geht.
MPI

3
Ich stimme dafür, diese Frage als nicht zum Thema gehörend zu schließen, da es sich nicht um ein Programmierproblem handelt.
Servy

Antworten:


138

Siehe: RFC 3092: Etymologie von "Foo", D. Eastlake 3rd et al.

Der Kürze halber nur die relevanten Definitionen aus diesem RFC zitieren:

  1. Wird sehr allgemein als Beispielname für absolut alles verwendet, insb. Programme und Dateien (insbesondere Scratch-Dateien).

  2. Zuerst auf der Standardliste der in Syntaxbeispielen verwendeten metasyntaktischen Variablen (bar, baz, qux, quux, corge, grault, garply, waldo, fred, plugh, xyzzy, thud). [JARGON]


25
Oh, das ist einfach großartig. Sie haben einen RFC für Foo.
Mark Tomlin

5
Mark Tomlin, sehen Sie sich das Datum in diesem RFC an.
Windows-Programmierer

6
Was ist ein RFC ;-)?
Bastien Vandamme

1
@ Pentarex Was ist ein RTFM ;-)?
CodesInChaos

3
RFC - "Request For Comments-Dokumente wurden 1969 von Steve Crocker erfunden, um inoffizielle Notizen zur Entwicklung des ARPANET aufzuzeichnen. Seitdem sind sie die offiziellen Aufzeichnungen für Internetspezifikationen, Protokolle, Verfahren und Ereignisse." Quelle: http://www.livinginternet.com
ZygD

44

foowird als Platzhaltername verwendet, normalerweise im Beispielcode, um anzuzeigen, dass das zu benennende Objekt oder die Wahl des Namens nicht Teil des Kerns des Beispiels ist. foooft gefolgt wird bar, bazund sogar bundy, wenn mehr als ein solcher Name ist erforderlich. Wikipedia nennt diese Namen Metasyntactic Variables . Python - Programmierer verwenden angeblich spam, eggs, ham, statt foousw.

Es gibt gute Verwendungen von foo in SA.

Ich habe es auch verwendet gesehen foo, wenn der Programmierer sich keinen aussagekräftigen Namen vorstellen kann (beispielsweise als Ersatz für tmp), aber ich betrachte dies als Missbrauch von foo.


22

Als Definition von "Foo" hat viele Bedeutungen:

  • Bar und Baz werden oft zusammengesetzt, um Wörter wie Foobar, Barbaz und Foobaz zu bilden. www.nationmaster.com/encyclopedia/Metasyntactic-variable

  • Wichtige Konzepte in CML, die normalerweise direkt auf XMLElements abgebildet werden (wird später erläutert). wwmm.ch.cam.ac.uk/blogs/cml/

  • Messung der Gesamtmenge der Weide im Fahrerlager, ausgedrückt in Kilogramm Weidetrockenmasse pro Hektar (kg DM / ha) www.lifetimewool.com.au/glossary.aspx

  • Forward Observation Officer. Ein Artillerieoffizier, der bei Infanterie- und Panzerbataillonen blieb, um Beobachtungsposten an der Front einzurichten, von denen aus er feindliche Positionen beobachten und die Koordinaten der Ziele zu den weiter hinten befindlichen Kanonen funken konnte. Members.fortunecity.com/lniven/definition.htm

  • ist die erste häufig verwendete metasyntaktische Variable. Es wird manchmal mit Riegel kombiniert, um Foobar zu machen. Dies deutet darauf hin , dass foo mit dem Zweiten Weltkrieg Slang - Begriff fubar entstanden sein, als Akronym für f ucked / f ouled u p b eyond ein ll r eCognition, obwohl das Jargon File einen ziemlich guten Fall macht ... Erklärung Führung. info / Meaning / Metasyntactic-Variable.html

  • Foo ist eine metasyntaktische Variable, die in der Informatik häufig zur abstrakten Darstellung von Konzepten verwendet wird und zur Darstellung eines beliebigen Teils eines ... en.wikipedia.org/wiki/FOo verwendet werden kann

  • Foo ist die Welt der Träume (nein, nicht) in Obert Skyes Leven Thumps-Serie. Obwohl es viele Ureinwohner hat, stammen die meisten seiner derzeitigen Bewohner aus der Realität und werden als Nissen bezeichnet. ... en.wikipedia.org/wiki/Foo (Ort)

  • Auch foo '. Darstellung eines Narren (dumme Person) in einem Mr. T-Akzent en.wiktionary.org/wiki/foo

Ressource: Google


Tolle Antwort, aber wahrscheinlich lohnt es sich, einen Link zum Jargon-Dateieintrag zu setzen: catb.org/jargon/html/F/foo.html
Dave Webb

Google Ergebnisse sind keine Antwort
Nialljsmith

2
Google-Ergebnisse sind keine Antwort << Ich verstehe nicht. Was ist dann die Antwort? wenn du an einen denkst? ohne Garantie? oder sollte ich hier aktuelle links zu massen von seiten ablegen? Ich denke, dass Stackoverflow Dinge an einem Ort haben muss, nicht nur Links zu anderen Sites, so habe ich das alles in einem Thread gepostet.
Lukas Šalkauskas

Hey, wenn du alle nicht programmierbezogenen Antworten veröffentlichen willst, warum hast du dann "foo-Fighter" weggelassen, den Namen, den Piloten des Zweiten Weltkriegs UFOs gaben, die sie sahen und die sie nicht identifizieren konnten, aber vermutlich feindliche Kämpfer waren?
Kmeixner


9

foo = Datei oder Objekt. Es wird anstelle einer Objektvariablen oder eines Dateinamens verwendet.


7

Ich denke, es soll nichts bedeuten. Das Wiki sagt:

"Foo wird häufig mit den metasyntaktischen Variablen bar und foobar verwendet."


3

Der Klang des französischen Fou (wie: amour fou) [verrückt], der auf Englisch geschrieben ist, wäre foo, nicht wahr? Sonst furchtbar -> foobar -> foo, bar -> barfoo -> barfuß. Nur für dich. Ein Fuß ohne Zähne.

Ich stimme allen zu, die es erwähnt haben: nichts Interessantes, nur etwas, das normalerweise benötigt wird, um eine Aussage / einen Ausdruck zu vervollständigen.


Ich mag den Vergleich mit anderen Sprachen und deren unterschiedlichen Bedeutungen :-D
Matt

3

Unter meinen Kollegen bestand die Bedeutung (oder genauer gesagt die Verwendung ) des Begriffs "foo" darin, als Platzhalter für ein Beispiel für einen Namen zu dienen . Beispiele umfassen, sind aber nicht beschränkt auf, yourVariableName , yourObjectName oder yourColumnName .

Heute vermeide ich die Verwendung von "foo" und bevorzuge aus mehreren Gründen die Verwendung dieser Art der benannten Substitution.

  • In meinen früheren Tagen fand ich ursprünglich die Verwendung von "foo" als Platzierung in einem Beispiel, um etwas als f'd-up darzustellen, verwirrend. Ich wollte ein funktionierendes Beispiel, nicht etwas, das foobar war.
  • Ihre Ergebnisse können variieren, aber ich habe immer 100%, jedes Mal, wenn ich nie versagt habe, weitere Folgefragen zur Bedeutung der tatsächlichen Variablen, in der "foo" verwendet wurde.

2

Meiner Meinung nach hat jeder Programmierer seine eigenen "Wörter", die jedes Mal verwendet werden, wenn Sie beim Programmieren ein beliebiges Wort benötigen. Für manche Menschen sind es die ersten Worte aus einem Kinderlied, für andere sind es Namen und für andere etwas völlig anderes. Für die Programmierer-Community gibt es nun auch diese "Wörter", und diese Wörter sind "foo" und "bar". Dies bedeutet, dass Sie, wenn Sie öffentlich über das Programmieren kommunizieren müssen, nicht sagen müssen, dass Sie Schiedswörter verwenden würden, sondern einfach "foo" oder "bar" schreiben würden und jeder Programmierer weiß, dass dies nur willkürliche Wörter sind.


2
Wenn "jeder" das weiß, warum fragen dann so viele Leute nach der Bedeutung von "foo", "bar" und "foobar"? Prakash ist nicht der erste, der danach fragt. IMO foo, bar und foobar sind nicht intuitiv, wie a, b, c, tmp, x, y, z, var und func, weshalb ich denke, dass viele pe
Anders Sandvig

Hm .. Bin ich es nur, oder ist das Rendern langer Kommentare kaputt? Wie auch immer, der Rest war "... warum ich denke, dass viele Leute sie ablenken."
Anders Sandvig

1
Ja, du hast dein Limit von 300 Zeichen für einen Kommentar überschritten;) aber danke!
Prakash

Ich bin wahrscheinlich nur zu tief in der Entwickler-Community
verwickelt ;-)

Ich fand (und finde) sie ablenkend. Besonders als ich zum ersten Mal versuchte, Python zu entschlüsseln, hielt ich sie für weitaus aussagekräftiger als sie. Vielleicht eine Funktion oder ein Teil der Syntax. Obwohl ich das gleiche Problem mit Dingen wie ** kwargs hatte. Ich versuche instinktiv, mir solche Dinge zu merken. Bis zum Aufschreiben. Bis mir jemand sagte "es ist egal, welchen Satz du verwendest, solange du den ** hast". Zumindest "kwargs" macht Sinn, wenn man merkt, wofür es steht. Sachen wie "foo" sind nur verwirrend "mystisch". Sie fühlen sich wegen Verletzungen verletzt.
OmikronWeapon
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.