Що насправді означає "foo"?


232

Я сподіваюся, що це кваліфікується як питання програмування, як і в будь-якому навчальному посібнику з програмування, ви в кінцевому підсумку зіткнетеся з «foo» у прикладах коду. (так правильно?)

що насправді означає "foo"?

Якщо це означає, що нічого не означає , коли його почали так використовувати?


Питання, пов'язане в попередньому коментарі, очевидно видалено. Він все ще доступний в неофіційному архіві видалених питань: stackoverflow.hewgill.com/questions/262/271.html . Дивись також це питання , пов'язаний видалений: stackoverflow.hewgill.com/questions/163/229.html
HugoRune

1
Це питання видається поза темою, оскільки йдеться про Етимологію
буммі

1
Це питання поза темою, оскільки мова не йде про програмування в межах, визначених у довідковому центрі.
l4mpi

3
Я голосую, щоб закрити це питання поза темою, оскільки це не проблема програмування.
Сервіс

Відповіді:


138

Див .: RFC 3092: Етимологія "Foo", D. Eastlake 3rd et al.

Цитуючи лише відповідні визначення цього RFC для стислості:

  1. Вживається дуже загально як назва зразка для абсолютно нічого, особливо програми та файли (особливо файли подряпин).

  2. Спочатку в стандартному списку метасинтаксичних змінних, що використовуються в прикладах синтаксису (bar, baz, qux, quux, corge, grault, garply, waldo, fred, plugh, xyzzy, thud). [JARGON]


25
О, це просто приголомшливо. У них є RFC для Foo.
Марк Томлін

5
Марк Томлін, поглянь на дату в цьому RFC.
програміст Windows

6
Що таке RFC ;-)?
Bastien Vandamme

1
@Pentarex Що таке RTFM ;-)?
CodesInChaos

3
RFC - "Документи щодо запиту коментарів були винайдені Стівом Крокером у 1969 році, щоб допомогти записати неофіційні замітки щодо розвитку ARPANET. Вони з тих пір стали офіційним записом щодо Інтернет-специфікацій, протоколів, процедур та подій". Джерело: http://www.livinginternet.com
ZygD

44

fooвикористовується як ім'я власника місць, зазвичай у прикладі коду для позначення того, що названий об'єкт або вибір імені не є частиною суті прикладу. fooчасто супроводжується bar, bazі навіть bundy, якщо більш ніж одне таке ім'я необхідно. Вікіпедія називає ці назви метасинтаксичними змінними . Python програмісти нібито використовують spam, eggs, hamзамість fooі т.д.

В SA є гарне використання foo .

Я також бачив fooвикористання, коли програміст не може придумати значущу назву (як заміну tmp, скажімо), але вважаю це неправильним використанням foo.


22

Як визначення "Foo" має багато значень:

  • bar і baz часто складаються разом, щоб скласти такі слова, як foobar, barbaz і foobaz. www.nationmaster.com/encyclopedia/Metasyntactic-variable

  • Основні поняття в CML, як правило, відображаються безпосередньо на XMLElements (про що піде мова далі). wwmm.ch.cam.ac.uk/blogs/cml/

  • Вимірювання загальної кількості пасовища в загоні, виражене в кілограмах сухої речовини пасовища на гектар (кг DM / га) www.lifetimewool.com.au/glossary.aspx

  • Форвард спостереження. Офіцер артилерії, який залишився з піхотними та танковими батальйонами, встановив на передових лініях спостережні пункти, з яких слід спостерігати за позиціями противника та передавати координати цілей гарматам у тил. members.fortunecity.com/lniven/definition.htm

  • є першою поширеною метасинтаксичною змінною. Іноді поєднується з бруском для виготовлення фубар. Це говорить про те, що Foo , можливо, виникла з Другої світової війни сленгу термін FuBar, як акронім для ф ucked / ф Ouled ˙U р б eyond в Л.Л. г ecognition, хоча Жаргон файлу робить досить хороший випадок ... пояснення : керівництво. інформація / значення / Metasyntactic-varia.html

  • Foo - це метасинтаксична змінна, яка широко використовується в інформатиці для абстрактного представлення понять і може бути використана для представлення будь-якої частини ... en.wikipedia.org/wiki/FOo

  • Foo - це світ мрій (ні його немає) в серіалі Оберта Скай Левеня Палець. Хоча в ньому багато оригінальних мешканців, більшість його нинішніх мешканців походять з Реальності і відомі як гниди. ... en.wikipedia.org/wiki/Foo (місце)

  • Також foo '. Представлення дурня (нерозумної людини) в акценті містера T en.wiktionary.org/wiki/foo

Ресурс: google


Чудова відповідь, але, напевно, варто поставити посилання на запис файлу Jargon: catb.org/jargon/html/F/foo.html
Дейв Вебб

Результати Google - це не відповідь
nialljsmith

2
Результати Google - це не відповідь << я не отримую. То що тоді відповідь? якщо ви думаєте про одне? без гарантії? або я повинен скинути тут фактичні посилання на масу сайтів? Я думаю, що stackoverflow повинен мати речі в одному місці, а не лише посилання на інші сайти, ось так я розмістив все це в одну нитку.
Лукаш Шалкаускас

Гей, якщо ви збираєтеся опублікувати всі відповіді, що не стосуються програмування, чому ви залишили "бойовика" ім'я пілотів Другої світової війни, які дали НЛО, які вони бачили і не змогли ідентифікувати, але вважали, що це бійці ворога?
Кмейкснер


9

foo = Файл або Об'єкт. Він використовується замість змінної об'єкта або імені файлу.


7

Я думаю, це не означає нічого не означати. Вікі говорить:

"Foo зазвичай використовується з рядком метасинтаксичних змінних та foobar."


3

Звук французького фуру (наприклад: amour fou) [божевільний], написаний англійською мовою, був би дурним, чи не так. Else furchtbar -> foobar -> foo, bar -> barfoo -> barfuß (босоніж). Просто чотири. Стопа без зубів.

Я погоджуюся з усіма, хто це згадував, означає: для завершення висловлювання / вираження зазвичай не потрібно нічого цікавого, просто щось.


Мені подобається порівняння з іншими мовами та їх різними значеннями :-D
Мт

3

Серед моїх колег значення (або, можливо, точніше - використання ) терміна "foo" було служити заповнювачем для подання прикладу для імені . Приклади включають, але не обмежуючись цим, вашеVariableName , yourObjectName або yourColumnName .

Сьогодні я уникаю використання "foo" і вважаю за краще використовувати цей тип названої заміни з кількох причин.

  • У попередні дні я спочатку вважав використання "foo" як розміщення в будь-якому прикладі, щоб представити щось як f'd-up, щоб заплутати. Я хотів робочий приклад, а не те, що було foobar.
  • Ваші результати можуть відрізнятися, але я завжди, на 100%, кожного разу, ніколи не отримував збоїв, отримував більше додаткових запитань щодо значення фактичної змінної, де використовується "foo".

2

На мою думку, кожен програміст має свої "слова", які використовуються кожного разу, коли вам потрібно програмувати довільне слово. Для одних це перші слова з дитячої пісні, для інших це імена, а для інших це щось зовсім інше. Тепер для спільноти програмістів також є ці "слова", і ці слова "foo" і "bar". Використання цього полягає в тому, що якщо вам доведеться публічно спілкуватися з приводу програмування, вам не потрібно говорити, що ви будете використовувати арбітражні слова, ви просто напишете "foo" або "bar", і кожен програміст знає, що це просто довільні слова.


2
Якщо "всі" це знають, чому так багато людей запитують про значення "foo", "bar" та "foobar"? Пракаш - це не перша людина, яка запитує. IMO foo, bar та foobar не є інтуїтивно зрозумілими, як a, b, c, tmp, X, Y, Z, var та func, саме тому я думаю, що багато людей
Anders Sandvig

Гм .. Це тільки я, або ж подання довгих коментарів порушено? У будь-якому разі, решта була "... чому я думаю, що багато людей вважають їх відволікаючими".
Андерс Сандвіг

1
Так, ви перевищили обмеження на 300 символів для коментаря;), але дякую!
пракаш

Я, мабуть, просто заплутався занадто глибоко у спільноті розробників ;-)
khebbie

Я знайшов (і знайшов) їх відволікаючих. Особливо, коли вперше намагався розшифрувати пітон, я вважав їх набагато більш значущими, ніж вони. Може бути функція, або якась частина синтаксису. Хоча я мав те саме питання з такими речами, як ** kwargs. Я інстинктивно намагаюся запам'ятати подібні речі. До моменту його запису. Поки хтось не сказав мені "не має значення, яку фразу ви використовуєте, доки у вас є **". Принаймні, «кворгс» має сенс, коли ти усвідомлюєш, для чого він виступає. Такі речі, як "foo", просто заплутано "містичні". Вони відчувають, як насолоджуються заради насолод.
OmikronWeapon
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.