การเขียนโปรแกรม

คำถาม & คำตอบสำหรับโปรแกรมเมอร์มืออาชีพและกระตือรือร้น

30
ส่วนต่อประสานกับบทคัดย่อระดับ (OO ทั่วไป)
ฉันเพิ่งมีการสัมภาษณ์ทางโทรศัพท์สองครั้งเมื่อไม่นานมานี้ที่ฉันถูกถามเกี่ยวกับความแตกต่างระหว่างอินเทอร์เฟซและคลาสนามธรรม ฉันได้อธิบายทุกแง่มุมของพวกเขาที่ฉันคิดได้ แต่ดูเหมือนว่าพวกเขากำลังรอให้ฉันพูดถึงบางสิ่งที่เฉพาะเจาะจงและฉันไม่รู้ว่ามันคืออะไร จากประสบการณ์ของฉันฉันคิดว่าต่อไปนี้เป็นจริง หากฉันพลาดจุดสำคัญโปรดแจ้งให้เราทราบ อินเตอร์เฟซ: ทุกวิธีเดียวที่ประกาศในอินเตอร์เฟสจะต้องนำไปใช้ในคลาสย่อย เหตุการณ์เฉพาะผู้ได้รับมอบหมายคุณสมบัติ (C #) และวิธีการเท่านั้นที่มีอยู่ในส่วนต่อประสาน ชั้นสามารถใช้อินเทอร์เฟซหลาย ระดับนามธรรม: ต้องใช้วิธีการแบบนามธรรมเท่านั้นโดยคลาสย่อย คลาสนามธรรมสามารถมีวิธีการปกติกับการใช้งาน คลาสนามธรรมยังสามารถมีตัวแปรคลาสข้างกิจกรรมผู้ได้รับมอบหมายคุณสมบัติและวิธีการ คลาสสามารถใช้คลาสนามธรรมได้เพียงคลาสเดียวเท่านั้นเนื่องจากไม่มีการสืบทอดหลายค่าใน C # หลังจากนั้นผู้สัมภาษณ์ถามคำถามว่า "จะเกิดอะไรขึ้นถ้าคุณมีคลาสนามธรรมด้วยวิธีนามธรรมเท่านั้น? สิ่งนั้นจะแตกต่างจากอินเทอร์เฟซอย่างไร" ฉันไม่รู้คำตอบ แต่ฉันคิดว่านี่เป็นมรดกตามที่กล่าวไว้ข้างต้นใช่ไหม ผู้สัมภาษณ์คนหนึ่งถามฉันว่าถ้าคุณมีตัวแปรสาธารณะในส่วนต่อประสานนั้นจะแตกต่างจากในชั้นเรียนนามธรรมอย่างไร ฉันยืนยันว่าคุณไม่สามารถมีตัวแปรสาธารณะภายในอินเทอร์เฟซ ฉันไม่รู้ว่าเขาต้องการได้ยินอะไร แต่เขาก็ไม่พอใจเช่นกัน ดูเพิ่มเติมที่ : ใช้อินเทอร์เฟซแทนคลาสนามธรรมและในทางกลับกันเมื่อใด การเชื่อมต่อกับชั้นเรียนนามธรรม คุณตัดสินใจเลือกระหว่างการใช้คลาสนามธรรมและอินเทอร์เฟซอย่างไร อะไรคือความแตกต่างระหว่างอินเตอร์เฟสและคลาสนามธรรม?

7
เสียงเรียกว่า“ เขียนด้วย sudo” ของกลุ่มทำงานอย่างไร?
หลายคนคงเคยเห็นคำสั่งที่ให้คุณเขียนไฟล์ที่ต้องการการอนุญาตรูทถึงแม้ว่าคุณจะลืมเปิด vim ด้วย sudo: :w !sudo tee % สิ่งคือฉันไม่ได้รับสิ่งที่เกิดขึ้นตรงนี้ ฉันคิดแล้ว: wสำหรับสิ่งนี้ *:w_c* *:write_c* :[range]w[rite] [++opt] !{cmd} Execute {cmd} with [range] lines as standard input (note the space in front of the '!'). {cmd} is executed like with ":!{cmd}", any '!' is replaced with the previous command |:!|. ดังนั้นจึงผ่านทุกบรรทัดเป็นอินพุตมาตรฐาน !sudo teeส่วนสายteeที่มีสิทธิ์ผู้ดูแลระบบ …
1410 vim  sudo 

18
ฉันจะโคลนไดเรกทอรีย่อยของที่เก็บ Git ได้อย่างไร
ฉันมีที่เก็บ Git ของฉันซึ่งที่ root มีสองไดเรกทอรีย่อย: /finisht /static เมื่อเป็นเช่นนี้อยู่ในSVN , /finishtได้รับการตรวจสอบในสถานที่หนึ่งในขณะที่/staticได้รับการตรวจสอบออกอื่น ๆ เช่นดังนั้น: svn co svn+ssh://admin@domain.com/home/admin/repos/finisht/static static มีวิธีการทำเช่นนี้กับ Git หรือไม่?

30
วิธีรับที่อยู่ IP ของคอนเทนเนอร์ Docker จากโฮสต์
มีคำสั่งที่ฉันสามารถเรียกใช้เพื่อรับที่อยู่ IP ของคอนเทนเนอร์จากโฮสต์หลังจากสร้างคอนเทนเนอร์ใหม่หรือไม่ โดยพื้นฐานแล้วเมื่อนักเทียบท่าสร้างคอนเทนเนอร์ฉันต้องการม้วนการปรับใช้รหัสของตัวเองและสคริปต์การกำหนดค่าคอนเทนเนอร์
1409 docker 


30
JavaScript เป็นภาษาแบบอ้างอิงหรืออ้างอิงผ่านค่าหรือไม่
ประเภทดั้งเดิม (หมายเลข, สตริง, ฯลฯ ) จะถูกส่งผ่านตามค่า แต่วัตถุไม่เป็นที่รู้จักเพราะพวกเขาสามารถเป็นได้ทั้งผ่านโดยค่า (ในกรณีที่เราพิจารณาว่าตัวแปรถือวัตถุในความเป็นจริงการอ้างอิงถึงวัตถุ ) และการอ้างอิงแบบส่งต่อ (เมื่อเราพิจารณาว่าตัวแปรไปยังวัตถุถือวัตถุเอง) แม้ว่ามันจะไม่สำคัญในตอนท้าย แต่ฉันต้องการที่จะรู้ว่าอะไรคือวิธีที่ถูกต้องในการนำเสนอข้อโต้แย้งผ่านอนุสัญญา มีข้อความที่ตัดตอนมาจากข้อกำหนดของ JavaScript ซึ่งกำหนดสิ่งที่ควรจะเป็นความหมายเกี่ยวกับเรื่องนี้?

25
การนำเข้าไฟล์จากโฟลเดอร์อื่น
ฉันมีโครงสร้างโฟลเดอร์ต่อไปนี้ application/app/folder/file.py และฉันต้องการนำเข้าฟังก์ชั่นบางอย่างจากfile.pyในไฟล์ Python อื่นที่อยู่ในนั้น application/app2/some_folder/some_file.py ฉันได้พยายาม from application.app.folder.file import func_name และความพยายามอื่น ๆ ที่หลากหลาย แต่จนถึงขณะนี้ฉันไม่สามารถนำเข้าได้อย่างถูกต้อง ฉันจะทำสิ่งนี้ได้อย่างไร

16
ความคิดเห็นใน Markdown
ไวยากรณ์สำหรับการจัดเก็บความคิดเห็นในไฟล์มาร์กอัปเช่นความคิดเห็น CVS $ Id $ ที่ด้านบนของไฟล์คืออะไร ผมพบว่าไม่มีอะไรในโครงการ markdown
1401 syntax  comments  markdown 


13
หยุด setInterval โทรใน JavaScript
ฉันใช้setInterval(fname, 10000);เพื่อเรียกใช้ฟังก์ชันทุก ๆ 10 วินาทีใน JavaScript เป็นไปได้หรือไม่ที่จะหยุดเรียกมันในบางเหตุการณ์? ฉันต้องการให้ผู้ใช้สามารถหยุดการรีเฟรชข้อมูลซ้ำได้

30
ฉันจะหาเอกสารเกี่ยวกับการจัดรูปแบบวันที่ใน JavaScript ได้ที่ไหน [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน2 ปีที่ผ่านมา ฉันสังเกตเห็นว่าnew Date()ฟังก์ชั่นของ JavaScript นั้นฉลาดมากในการยอมรับวันที่ในหลายรูปแบบ Xmas95 = new Date("25 Dec, 1995 23:15:00") Xmas95 = new Date("2009 06 12,12:52:39") Xmas95 = new Date("20 09 2006,12:52:39") ฉันไม่พบเอกสารที่แสดงรูปแบบสตริงที่ถูกต้องทั้งหมดในขณะที่เรียกnew Date()ใช้ฟังก์ชัน นี่คือการแปลงสตริงเป็นวันที่ ถ้าเราดูที่ด้านตรงข้ามนั่นคือการแปลงวัตถุวันที่เป็นสตริงจนกระทั่งตอนนี้ฉันอยู่ภายใต้การแสดงผลที่ JavaScript ไม่มี API ในตัวเพื่อจัดรูปแบบวัตถุวันที่ให้เป็นสตริง หมายเหตุของบรรณาธิการ:วิธีการต่อไปนี้เป็นความพยายามของผู้ถามที่ทำงานบนเบราว์เซอร์เฉพาะ แต่ไม่สามารถใช้งานได้โดยทั่วไป ดูคำตอบในหน้านี้เพื่อดูวิธีแก้ไขปัญหาจริง วันนี้ฉันเล่นกับtoString()วิธีการเกี่ยวกับวัตถุวันที่และน่าแปลกใจที่มันมีจุดประสงค์ในการจัดรูปแบบวันที่เพื่อสตริง var d1 = new Date(); d1.toString('yyyy-MM-dd'); …

27
ทำไมไม่สืบทอดจากรายการ <T>
เมื่อวางแผนโปรแกรมของฉันฉันมักจะเริ่มต้นด้วยความคิดอย่าง: ทีมฟุตบอลเป็นเพียงรายชื่อผู้เล่นฟุตบอล ดังนั้นฉันควรเป็นตัวแทนด้วย: var football_team = new List&lt;FootballPlayer&gt;(); การเรียงลำดับของรายการนี้แสดงถึงลำดับที่ผู้เล่นแสดงไว้ในบัญชีรายชื่อ แต่ฉันตระหนักในภายหลังว่าทีมยังมีคุณสมบัติอื่น ๆ นอกเหนือจากรายชื่อผู้เล่นที่ต้องบันทึกไว้ ตัวอย่างเช่นคะแนนรวมที่ดำเนินการอยู่ในฤดูกาลนี้งบประมาณปัจจุบันสีสม่ำเสมอstringชื่อตัวแทนของทีม ฯลฯ ดังนั้นฉันคิดว่า: โอเคทีมฟุตบอลก็เหมือนกับรายการของผู้เล่น แต่นอกจากนี้ยังมีชื่อ (a string) และคะแนนรวมทั้งหมด (an int) .NET ไม่มีคลาสสำหรับเก็บทีมฟุตบอลดังนั้นฉันจะสร้างคลาสของตัวเอง โครงสร้างที่มีอยู่ที่คล้ายกันและเกี่ยวข้องมากที่สุดคือList&lt;FootballPlayer&gt;ดังนั้นฉันจะสืบทอดจากมัน: class FootballTeam : List&lt;FootballPlayer&gt; { public string TeamName; public int RunningTotal } แต่มันกลับกลายเป็นว่าแนวทางในการพูดว่าคุณไม่ควรสืบทอดมาจาก List&lt;T&gt;ฉันสับสนอย่างละเอียดโดยแนวทางนี้สองประการ ทำไมจะไม่ล่ะ? เห็นได้ชัดว่ามีการเพิ่มประสิทธิภาพอย่างใดเพื่อให้ได้ประสิทธิภาพList งั้นเหรอ ฉันจะทำให้เกิดปัญหาประสิทธิภาพการทำงานถ้าฉันขยายList? จะเกิดอะไรขึ้น เหตุผลที่ผมเคยเห็นก็คือการที่Listให้บริการโดยไมโครซอฟท์และผมสามารถควบคุมมันไม่ได้ดังนั้นฉันไม่สามารถเปลี่ยนได้ในภายหลังหลังจากเปิดเผย "ประชาชน API" แต่ฉันพยายามเข้าใจสิ่งนี้ API สาธารณะคืออะไรและทำไมฉันจึงควรใส่ใจ …
1398 c#  .net  list  oop  inheritance 


28
สัญญาและของรางวัลต่างกันอย่างไร
ความแตกต่างระหว่างPromiseและObservableในเชิงมุมคืออะไร? ตัวอย่างในแต่ละกรณีจะเป็นประโยชน์ในการทำความเข้าใจทั้งสองกรณี ในสถานการณ์ใดที่เราสามารถใช้แต่ละกรณี


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.