'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.