'Foo' thực sự có nghĩa là gì?


232

Tôi hy vọng điều này đủ điều kiện là một câu hỏi lập trình, như trong bất kỳ hướng dẫn lập trình nào, cuối cùng bạn cũng bắt gặp 'foo' trong các ví dụ mã. (vâng, phải không?)

'foo' thực sự có nghĩa là gì?

Nếu nó có nghĩa là không có nghĩa , thì nó bắt đầu được sử dụng khi nào?


Câu hỏi liên kết trong bình luận trước đó rõ ràng đã bị xóa. Nó vẫn có sẵn trong kho lưu trữ không chính thức các câu hỏi đã xóa: stackoverflow.hewgill.com/questions/262/271.html . xem thêm câu hỏi đã xóa liên quan này: stackoverflow.hewgill.com/questions/163/229.html
HugoRune

1
Câu hỏi này dường như lạc đề vì nó liên quan đến Từ nguyên
bummi

1
Câu hỏi này không có chủ đề vì nó không phải là về lập trình trong phạm vi được xác định trong trung tâm trợ giúp.
l4mpi

3
Tôi đang bỏ phiếu để đóng câu hỏi này ngoài chủ đề vì nó không phải là vấn đề lập trình.
Phục vụ

Câu trả lời:


138

Xem: RFC 3092: Từ nguyên của "Foo", D. Eastlake 3rd et al.

Chỉ trích dẫn các định nghĩa có liên quan từ RFC đó cho ngắn gọn:

  1. Được sử dụng rất chung chung như là một tên mẫu cho hoàn toàn mọi thứ, đặc biệt. chương trình và tập tin (đặc biệt là tập tin cào).

  2. Đầu tiên trên danh sách tiêu chuẩn của các biến metasyntactic được sử dụng trong các ví dụ cú pháp (bar, baz, qux, quux, corge, grault, garply, waldo, fred, plugh, xyzzy, thud). [JARGON]


25
Ồ, thật tuyệt vời. Họ có RFC cho Foo.
Đánh dấu Tomlin

5
Đánh dấu Tomlin, nhìn vào ngày trong RFC đó.
Lập trình viên Windows

6
RFC là gì ;-)?
Bastien Vandamme

1
@Pentarex RTFM là gì ;-)?
CodeInChaos 14/03/2015

3
RFC - "Tài liệu Yêu cầu Nhận xét được phát minh bởi Steve Crocker vào năm 1969 để giúp ghi lại các ghi chú không chính thức về sự phát triển của ARPANET. Chúng đã trở thành hồ sơ chính thức về thông số kỹ thuật, giao thức, quy trình và sự kiện Internet". Nguồn: http://www.livingiNET.com
ZygD

44

foođược sử dụng làm tên người giữ chỗ, thường là mã ví dụ để biểu thị rằng đối tượng được đặt tên hoặc lựa chọn tên không phải là một phần của mấu chốt của ví dụ. foothường được theo sau bởi bar, bazvà thậm chí bundy, nếu cần nhiều hơn một tên như vậy. Wikipedia gọi những cái tên này là Metasyntactic Biến . Lập trình viên Python được cho là sử dụng spam, eggs, ham, thay vì foovv

Có những công dụng tốt của foo trong SA.

Tôi cũng đã thấy foođược sử dụng khi lập trình viên không thể nghĩ ra một cái tên có ý nghĩa (thay thế cho tmp, nói), nhưng tôi coi đó là một cách sử dụng sai foo.


22

Theo định nghĩa của "Foo" có rất nhiều ý nghĩa:

  • thanh và baz thường được ghép với nhau để tạo ra các từ như foobar, barbaz và foobaz. www.nationmaster.com/encyclopedia/Metasyntactic-variable

  • Các khái niệm chính trong CML, thường được ánh xạ trực tiếp lên XMLElements (sẽ được thảo luận sau). wwmm.ch.cam.ac.uk/bloss/cml/

  • Đo lường tổng số lượng đồng cỏ trong một bãi, được biểu thị bằng kilogam chất khô trên đồng cỏ (ha DM / ha) www.lifetimewool.com.au/glossary.aspx

  • Cán bộ quan sát phía trước. Một sĩ quan pháo binh vẫn ở cùng với các tiểu đoàn bộ binh và xe tăng để thiết lập các trạm quan sát ở tiền tuyến để quan sát vị trí của địch và truyền tọa độ của các mục tiêu tới các khẩu súng ở phía sau. thành viên.fortunecity.com / lniven / def định.htmlm

  • là biến metasyntactic đầu tiên thường được sử dụng. Nó đôi khi được kết hợp với thanh để làm foobar. Điều này cho thấy rằng foo có thể có nguồn gốc từ fubar trong tiếng lóng trong Thế chiến II, như một từ viết tắt của f ucked / f ouled u p b eyond a ll r ecwarition, mặc dù Jargon File tạo ra một trường hợp khá tốt ... hướng dẫn giải thích. thông tin / ý nghĩa / Metasyntactic-biến.html

  • Foo là một biến số siêu hình được sử dụng nhiều trong khoa học máy tính để thể hiện các khái niệm một cách trừu tượng và có thể được sử dụng để đại diện cho bất kỳ phần nào của ... en.wikipedia.org/wiki/FOo

  • Foo là thế giới của những giấc mơ (không phải là nó) trong loạt phim Leven Thumps của Obert Skye. Mặc dù nó có nhiều cư dân nguyên thủy, nhưng hầu hết cư dân hiện tại của nó là từ Thực tế, và được gọi là nits. ... vi.wikipedia.org/wiki/Foo (địa điểm)

  • Cũng foo '. Đại diện của kẻ ngốc (người dại dột), trong giọng của ông T en.wiktionary.org/wiki/foo

Tài nguyên: google


Câu trả lời tuyệt vời nhưng có lẽ đáng để đặt một liên kết đến mục nhập tệp Jargon: catb.org/jargon/html/F/foo.html
Dave Webb

Kết quả của Google không phải là câu trả lời
nialljsmith

2
Kết quả của Google không phải là câu trả lời << Tôi không nhận được. Vậy thì câu trả lời là gì? nếu bạn nghĩ về một? không có bảo đảm? hoặc tôi nên bỏ ở đây các liên kết thực tế đến hàng loạt các trang web? Tôi nghĩ rằng stackoverflow phải có những thứ ở một nơi, không chỉ liên kết đến các trang web khác, đó là cách tôi đã đăng tất cả những điều này vào một chủ đề.
Lukas alkauskas

Này, nếu bạn định đăng tất cả các câu trả lời không liên quan đến lập trình, tại sao bạn lại bỏ qua "foo-Fighter" cái tên mà các phi công WWII đặt cho UFO mà họ nhìn thấy và không thể xác định được nhưng có lẽ là máy bay chiến đấu của kẻ thù?
Kmeixner


9

foo = Tệp hoặc Đối tượng. Nó được sử dụng thay cho một biến đối tượng hoặc tên tệp.


7

Tôi nghĩ nó không có nghĩa gì cả. Wiki nói:

"Foo thường được sử dụng với thanh biến số metasyntactic và foobar."


3

Âm thanh của tiếng Pháp, (như: amour fou) [crazy] được viết bằng tiếng Anh, sẽ là foo, phải không. Khác furchtbar -> foobar -> foo, bar -> barfoo -> barfuß (chân trần). Chỉ cần phạm lỗi. Một bàn chân không có răng.

Tôi đồng ý với tất cả, những người đề cập đến nó có nghĩa là: không có gì thú vị, chỉ là một cái gì đó, thường là cần thiết để hoàn thành một tuyên bố / biểu thức.


Tôi thích sự so sánh với các ngôn ngữ khác và ý nghĩa khác nhau của chúng :-D
Matt

3

Trong số các đồng nghiệp của tôi, ý nghĩa (hoặc có lẽ chính xác hơn - việc sử dụng ) thuật ngữ "foo" đã được dùng như một trình giữ chỗ để thể hiện một ví dụ cho tên . Các ví dụ bao gồm, nhưng không giới hạn ở, yourVariableName , yourObjectName hoặc yourColumnName .

Hôm nay, tôi tránh sử dụng "foo" và thích sử dụng loại thay thế có tên này vì một vài lý do.

  • Trong những ngày đầu của tôi, ban đầu tôi thấy việc sử dụng "foo" như một vị trí trong bất kỳ ví dụ nào để thể hiện một cái gì đó là khó hiểu. Tôi muốn một ví dụ hoạt động, không phải cái gì đó là foobar.
  • Kết quả của bạn có thể khác nhau, nhưng tôi luôn luôn, 100%, mọi lúc, không bao giờ thất bại, có thêm câu hỏi tiếp theo về ý nghĩa của biến thực tế nơi "foo" được sử dụng.

2

Theo tôi, mỗi lập trình viên đều có "từ" riêng được sử dụng mỗi khi bạn cần một từ tùy ý khi lập trình. Đối với một số người, đó là những từ đầu tiên từ một bài hát thiếu nhi, đối với những người khác, đó là những cái tên hoàn toàn khác. Bây giờ đối với cộng đồng lập trình viên cũng có những "từ" này và những từ này là 'foo' và 'bar'. Việc sử dụng này là nếu bạn phải giao tiếp công khai về lập trình, bạn không cần phải nói rằng bạn sẽ sử dụng các từ tùy ý, bạn chỉ cần viết 'foo' hoặc 'bar' và mọi lập trình viên đều biết rằng đây chỉ là những từ tùy ý.


2
Nếu "tất cả mọi người" biết điều này, tại sao nhiều người hỏi về ý nghĩa của "foo", "bar" và "foobar"? Prakash không phải là người đầu tiên hỏi. IMO foo, bar và foobar không trực quan, như a, b, c, tmp, X, Y, Z, var và func, đó là lý do tại sao tôi nghĩ nhiều pe
Anders Sandvig

Hừm .. Chỉ có tôi, hay là kết xuất những bình luận dài bị hỏng? Dù sao, phần còn lại là "... tại sao tôi nghĩ nhiều người thấy họ mất tập trung."
Anders Sandvig

1
Vâng, bạn đã vượt quá giới hạn 300 ký tự cho một nhận xét;) nhưng cảm ơn!
prakash

Tôi có lẽ chỉ bị rối quá sâu trong cộng đồng nhà phát triển ;-)
khebbie

Tôi tìm thấy (và tìm thấy) chúng gây mất tập trung. Đặc biệt là khi lần đầu tiên cố gắng giải mã con trăn, tôi đã cho chúng có ý nghĩa hơn nhiều so với chúng. Có thể là một hàm, hoặc một phần của cú pháp. Mặc dù tôi có cùng một vấn đề với những thứ như ** kwargs. Tôi theo bản năng cố gắng ghi nhớ những thứ như vậy. Đến mức viết nó xuống. Cho đến khi ai đó nói với tôi "không quan trọng bạn sử dụng cụm từ nào, miễn là bạn có **". Ít nhất "kwargs" có ý nghĩa khi bạn nhận ra nó đại diện cho cái gì. Những thứ như "foo" thật khó hiểu là 'thần bí'. Họ cảm thấy như bị tiêm thuốc vì lợi ích của thuốc gây nghiện.
OmikronWeapon
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.