'foo' หมายถึงอะไรจริงๆ?


232

ฉันหวังว่านี่จะมีคุณสมบัติเป็นคำถามการเขียนโปรแกรมในการสอนการเขียนโปรแกรมใด ๆ ในที่สุดคุณก็เจอ 'foo' ในตัวอย่างโค้ด (ช่ายยย?)

'foo' หมายถึงอะไรจริง ๆ ?

ถ้ามันไม่ได้มีความหมายอะไรเลยมันจะเริ่มใช้เมื่อไร?


คำถามที่เชื่อมโยงในความคิดเห็นก่อนหน้านี้ถูกลบอย่างเห็นได้ชัด ก็ยังคงมีอยู่ในที่เก็บอย่างไม่เป็นทางการของคำถามลบ: stackoverflow.hewgill.com/questions/262/271.html ดูคำถามที่ถูกลบนี้เกี่ยวข้องกับ: stackoverflow.hewgill.com/questions/163/229.html
HugoRune

1
คำถามนี้ดูเหมือนจะไม่เป็นหัวข้อเพราะเป็นเรื่องเกี่ยวกับนิรุกติศาสตร์
bummi

1
คำถามนี้เป็นหัวข้อที่ไม่เกี่ยวข้องกับการเขียนโปรแกรมภายในขอบเขตที่กำหนดไว้ในศูนย์ช่วยเหลือ
l4mpi

3
ฉันลงคะแนนเพื่อปิดคำถามนี้เป็นนอกหัวข้อเนื่องจากไม่ใช่ปัญหาการเขียนโปรแกรม
Servy

คำตอบ:


138

ดู: RFC 3092: นิรุกติศาสตร์ของ "Foo", D. Eastlake 3rd et al.

การอ้างอิงเพียงคำจำกัดความที่เกี่ยวข้องจาก RFC นั้นเพื่อความกระชับ:

  1. ใช้โดยทั่วไปเป็นชื่อตัวอย่างสำหรับทุกสิ่งโดยเฉพาะ โปรแกรมและไฟล์ (โดยเฉพาะไฟล์รอยขีดข่วน)

  2. เป็นครั้งแรกในรายการมาตรฐานของตัวแปร metasyntactic ที่ใช้ในตัวอย่างไวยากรณ์ (บาร์, Baz, qux, quux, corge, grault, garply, waldo, เฟร็ด, plugh, xyzzy, thud) [ศัพท์แสง]


25
โอ้มันยอดเยี่ยมมาก พวกเขามี RFC สำหรับ Foo
Mark Tomlin

5
ทำเครื่องหมาย Tomlin ดูวันที่ใน RFC นั้น
โปรแกรมเมอร์ Windows

6
RFC ;-) คืออะไร
Bastien Vandamme

1
@Pentarex RTFM คืออะไร ;-)?
CodesInChaos

3
RFC - "คำร้องขอความคิดเห็นเอกสารถูกคิดค้นโดย Steve Crocker ในปี 1969 เพื่อช่วยในการบันทึกบันทึกอย่างไม่เป็นทางการเกี่ยวกับการพัฒนา ARPANET นับตั้งแต่พวกเขากลายเป็นบันทึกอย่างเป็นทางการสำหรับข้อมูลจำเพาะอินเทอร์เน็ตโปรโตคอลขั้นตอนและกิจกรรม" ที่มา: http://www.livinginternet.com
ZygD

44

fooใช้เป็นชื่อตัวยึดตำแหน่งโดยปกติจะเป็นรหัสตัวอย่างเพื่อบ่งบอกว่าวัตถุที่ถูกตั้งชื่อหรือตัวเลือกชื่อไม่ได้เป็นส่วนหนึ่งของปมของตัวอย่าง fooมักจะถูกตามด้วยbar, bazและ, ถึงแม้bundy, ถ้าต้องการชื่อมากกว่าหนึ่งชื่อ วิกิพีเดียเรียกชื่อเหล่านี้ตัวแปร Metasyntactic โปรแกรมเมอร์หลามคาดคะเนใช้spam, eggs, hamแทนfooฯลฯ

มีการใช้ fooใน SA เป็นอย่างดี

ฉันยังได้เห็นการfooใช้เมื่อโปรแกรมเมอร์ที่ไม่สามารถคิดชื่อมีความหมาย (ในฐานะเป็นตัวแทนสำหรับtmpการพูด) fooแต่ผมคิดว่าจะเป็นในทางที่ผิดของ


22

ตามคำนิยามของ "Foo" มีความหมายมากมาย:

  • แถบและบาซมักจะรวมกันเพื่อให้คำเช่น 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

  • เป็นตัวแปร metasyntactic แรกที่ใช้กันทั่วไป บางครั้งมันถูกรวมกับแถบเพื่อทำ foobar นี้แสดงให้เห็น foo ที่อาจจะเกิดขึ้นกับสงครามโลกครั้งที่สองแสลง fubar ระยะเป็นตัวย่อสำหรับ ucked / F Ouled ยูพี eyond LL R ecognition แม้ว่าไฟล์อาชีพทำให้เป็นกรณีที่ดีงาม ... คำอธิบายคู่มือ ข้อมูล / ความหมาย / Metasyntactic-variable.html

  • Foo เป็นตัวแปร metasyntactic ที่ใช้อย่างหนักในวิทยาการคอมพิวเตอร์เพื่อแสดงแนวคิดที่เป็นนามธรรมและสามารถใช้เพื่อเป็นตัวแทนส่วนหนึ่งของ ... en.wikipedia.org/wiki/FOo

  • Foo คือโลกแห่งความฝัน (ไม่มีเลย) ในซีรี่ส์ Leven Thumps ของ Obert Skye แม้ว่ามันจะมีผู้อยู่อาศัยดั้งเดิมจำนวนมาก แต่ผู้ที่อาศัยอยู่ในปัจจุบันส่วนใหญ่นั้นมาจากความจริงและเป็นที่รู้จักในฐานะ nits ... en.wikipedia.org/wiki/Foo (สถานที่)

  • ยัง foo ' เป็นตัวแทนของคนโง่ (คนโง่) ในสำเนียง Mr. T en.wiktionary.org/wiki/foo

ทรัพยากร: google


คำตอบที่ดี แต่อาจคุ้มค่าใส่ลิงก์ไปยังรายการแฟ้มอาชีพ: catb.org/jargon/html/F/foo.html
เดฟเวบบ์

ผลลัพธ์ของ Google ไม่ใช่คำตอบ
nialljsmith

2
ผลลัพธ์ของ Google ไม่ใช่คำตอบ << ฉันไม่เข้าใจ ดังนั้นคำตอบคืออะไร ถ้าคุณคิดอย่างใดอย่างหนึ่ง? ไม่มีการรับประกัน? หรือฉันควรจะวางลิงค์จริงที่นี่ไปยังเว็บไซต์จำนวนมาก? ฉันคิดว่า stackoverflow ต้องมีสิ่งต่าง ๆ ในที่เดียวไม่ใช่แค่ลิงก์ไปยังเว็บไซต์อื่นนั่นคือวิธีที่ฉันโพสต์สิ่งนี้ลงในหัวข้อเดียว
Lukas Šalkauskas

เฮ้ถ้าคุณจะโพสต์คำตอบที่ไม่เกี่ยวข้องกับการเขียนโปรแกรมทำไมคุณถึงทิ้ง "foo-fighter" ชื่อนักบินสงครามโลกครั้งที่สองที่มอบให้ยูเอฟโอที่พวกเขาเห็นและไม่สามารถระบุได้ แต่สันนิษฐานว่าเป็นนักสู้ศัตรู
Kmeixner



7

ฉันคิดว่ามันไม่มีความหมายอะไรเลย The wiki พูดว่า:

"Foo มักใช้กับแถบตัวแปร metasyntactic และ foobar"


3

เสียงของคนฝรั่งเศส fou, (เช่น: amour fou) [บ้า] ที่เขียนด้วยภาษาอังกฤษ, จะเป็น foo, ไม่ได้หรอก อื่น ๆ furchtbar -> foobar -> foo, bar -> barfoo -> barfuß (เท้าเปล่า) เพียงแค่ fou เท้าที่ไม่มีฟัน

ฉันเห็นด้วยกับทุกคนที่กล่าวถึงมันหมายถึง: ไม่มีอะไรที่น่าสนใจมีเพียงบางสิ่งที่จำเป็นต้องใช้ในการเขียน / แสดงออก


ฉันชอบการเปรียบเทียบกับภาษาอื่น ๆ และความหมายที่แตกต่างกันของพวกเขา:
Matt

3

ในหมู่เพื่อนร่วมงานของฉันความหมาย (หรืออาจจะถูกต้องมากขึ้น - มีการใช้งาน ) คำว่า "ฟู" ได้รับการทำหน้าที่เป็นตัวยึดเพื่อแสดงตัวอย่างสำหรับชื่อ ตัวอย่าง ได้แก่ แต่ไม่ จำกัด เฉพาะการyourVariableName , yourObjectNameหรือyourColumnName

วันนี้ฉันหลีกเลี่ยงการใช้ "foo" และชอบใช้การทดแทนที่มีชื่อประเภทนี้ด้วยเหตุผลสองประการ

  • ในวันก่อนหน้าของฉันฉันพบว่าการใช้ "foo" เป็นตำแหน่งในตัวอย่างใด ๆ เพื่อแสดงถึงสิ่งที่ทำให้สับสนขึ้น ฉันต้องการตัวอย่างการทำงานไม่ใช่สิ่งที่เป็น foobar
  • ผลลัพธ์ของคุณอาจแตกต่างกันไป แต่ฉันเสมอ 100% ทุกครั้งไม่เคยล้มเหลวมีคำถามติดตามเพิ่มเติมเกี่ยวกับความหมายของตัวแปรจริงที่ใช้ "foo"

2

ในความคิดของฉันโปรแกรมเมอร์ทุกคนมี "คำ" ของเขาหรือเธอที่ใช้ทุกครั้งที่คุณต้องการคำโดยพลการเมื่อเขียนโปรแกรม สำหรับบางคนมันเป็นคำแรกจากเพลง childs สำหรับคนอื่น ๆ มันเป็นชื่อและสำหรับบางคนมันมีความแตกต่างอย่างสิ้นเชิง ตอนนี้สำหรับชุมชนโปรแกรมเมอร์ก็มี "คำ" เหล่านี้เช่นกันและคำเหล่านี้คือ 'foo' และ 'bar' การใช้สิ่งนี้คือถ้าคุณต้องสื่อสารกับสาธารณชนเกี่ยวกับการเขียนโปรแกรมคุณไม่จำเป็นต้องพูดว่าคุณจะใช้คำอาร์ทราทรีคุณเพียงแค่เขียน 'foo' หรือ 'bar' และโปรแกรมเมอร์ทุกคนรู้ว่านี่เป็นเพียงคำพูด


2
ถ้า "ทุกคน" รู้เรื่องนี้ทำไมผู้คนมากมายถึงถามถึงความหมายของ "foo", "bar" และ "foobar"? Prakash ไม่ใช่คนแรกที่ถาม IMO foo, bar และ foobar นั้นไม่สามารถหยั่งรู้ได้เช่น a, b, c, tmp, X, Y, Z, var และ func ซึ่งเป็นเหตุผลที่ฉันคิดว่ามีคนมากมาย
Anders Sandvig

หืมม. เป็นแค่ฉันหรอกนะ ส่วนที่เหลือคือ "... ทำไมฉันถึงคิดว่าหลายคนคิดว่ามันน่ารำคาญ"
Anders Sandvig

1
ใช่คุณมีตัวอักษรเกิน 300 ตัวสำหรับการคอมเม้นต์) แต่ขอบคุณ!
prakash

ฉันอาจจะพันกันลึกเกินไปในชุมชนนักพัฒนา ;-)
khebbie

ฉันพบว่าพวกเขาเสียสมาธิ โดยเฉพาะอย่างยิ่งเมื่อพยายามถอดรหัสงูเหลือมเป็นครั้งแรกฉันพาพวกเขาไปมีความหมายมากกว่าพวกเขา อาจเป็นฟังก์ชั่นหรือบางส่วนของไวยากรณ์ แม้ว่าฉันจะมีปัญหาเดียวกันกับสิ่งต่าง ๆ เช่น ** kwargs ฉันพยายามจดจำสิ่งต่าง ๆ เช่นนั้นโดยสัญชาตญาณ จนถึงจุดเขียนลงไป จนกว่าจะมีใครบอกฉันว่า "ไม่สำคัญว่าคุณจะใช้วลีใดตราบใดที่คุณยังมี **" อย่างน้อย "kwargs" เข้าท่าเมื่อคุณรู้ว่ามันคืออะไร สิ่งต่าง ๆ เช่น "foo" เป็นเพียงความสับสนอย่างลึกลับ พวกเขารู้สึกเหมือนได้รับคำสั่งสอนเพื่อประโยชน์ของคำสั่งสอน
OmikronWeapon
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.