Что на самом деле означает «foo»?


232

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

что на самом деле означает «foo»?

Если это должно означать ничего не значит , когда это стало использоваться таким образом?


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

1
Этот вопрос, кажется, не по теме, потому что речь идет об этимологии
bummi

1
Этот вопрос не по теме, поскольку он не касается программирования в рамках, определенных в справочном центре.
l4mpi

3
Я голосую, чтобы закрыть этот вопрос как не по теме, потому что это не проблема программирования.
Serv

Ответы:


138

См .: RFC 3092: Этимология "Foo", D. Eastlake 3rd et al.

Цитируя только соответствующие определения из этого RFC:

  1. Очень широко используется в качестве имени образца для чего угодно, особенно. программы и файлы (особенно скретч-файлы).

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


25
О, это просто потрясающе. У них есть RFC для Foo.
Марк Томлин

5
Марк Томлин, посмотрите на дату в этом RFC.
Программист Windows

6
Что такое RFC ;-)?
Бастьен Вандамме

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

  • является первой широко используемой метасинтаксической переменной. Иногда это сочетается с баром, чтобы сделать foobar. Это говорит о том, что Foo , возможно, возникла с Второй мировой войны сленге термин FuBar, как акроним для ф ucked / ф Ouled ˙U р б eyond в Л.Л. г ecognition, хотя Жаргон файла делает довольно хороший случай ... объяснение : руководство. Информация / значение / метасинтаксическая-variable.html

  • Foo является метасинтаксической переменной, широко используемой в компьютерных науках для абстрактного представления концептов, и может использоваться для представления любой части ... en.wikipedia.org/wiki/FOo

  • Foo - это мир мечты (нет, это не так) из серии «Левен Удары» Оберта Скай. Несмотря на то, что у него много коренных жителей, большинство его нынешних обитателей - из Реальности и известны как гниды. ... en.wikipedia.org/wiki/Foo (место)

  • Также foo '. Представление дурака (глупый человек), в г-н Т акцент en.wiktionary.org/wiki/foo

Ресурс: Google


Отличный ответ, но, вероятно, стоит поставить ссылку на запись в файле Jargon: catb.org/jargon/html/F/foo.html
Дейв Уэбб

Результаты Google не являются ответом
nialljsmith

2
Результаты Google не являются ответом << Я не получаю. Итак, каков ответ? если вы думаете об одном? без гарантии? или мне стоит сюда сбрасывать актуальные ссылки на массу сайтов? Я думаю, что у stackoverflow должны быть вещи в одном месте, а не просто ссылки на другие сайты, поэтому я разместил все это в одной теме.
Лукас Шалкаускас

Эй, если вы собираетесь публиковать ответы на все вопросы, не связанные с программированием, почему вы пропустили "foo-fighter", имя, которое пилоты Второй мировой войны дали НЛО, которые они видели и не могли определить, но предположительно были вражескими истребителями?
Kmeixner


9

foo = Файл или Объект. Он используется вместо объектной переменной или имени файла.


7

Я думаю, что это ничего не значит. Вики говорят:

«Foo обычно используется с метасинтаксическими переменными bar и foobar».


3

Звук французского фу (вроде: amour fou) [сумасшедший], написанный на английском, будет фу, не так ли? Еще furchtbar -> foobar -> foo, bar -> barfoo -> barfuß (босиком). Просто фу. Нога без зубов.

Я согласен со всеми, кто упомянул, что это означает: ничего интересного, просто что-то, обычно необходимое для завершения утверждения / выражения.


Мне нравится сравнение с другими языками и их различными значениями :-D
Мэтт

3

Среди моих коллег значение (или, возможно, более точно - использование ) термина «foo» должно было служить заполнителем для представления примера имени . Примеры включают, но не ограничиваются этим, yourVariableName , yourObjectName или yourColumnName .

Сегодня я избегаю использования "foo" и предпочитаю использовать этот тип именованных подстановок по нескольким причинам.

  • В мои ранние дни я изначально находил использование «foo» в качестве места размещения в любом примере, чтобы представлять что-то как f-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, поэтому я думаю, что многие pe
Anders Sandvig

Хм .. Это только у меня, или рендеринг длинных комментариев нарушен? Во всяком случае, остальное было "... почему я думаю, что многие люди считают их отвлекающими".
Андерс Сандвиг

1
Да, вы превысили ограничение в 300 символов для комментария;) но спасибо!
Пракаш

Я, наверное, слишком запутался в сообществе разработчиков ;-)
khebbie

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