สารบัญ[ซ่อน][แสดง]
- 1. อธิบายโกลัง
- 2. Go มีข้อได้เปรียบอะไรมากกว่าภาษาอื่น?
- 3. ในการเขียนโปรแกรม Golang fmt คืออะไร?
- 4. Go Interfaces คืออะไร?
- 5. ลิเทอรัลสตริงคืออะไรกันแน่?
- 6. สภาพแวดล้อมการทำงานและพารามิเตอร์กำหนดค่าใน Golang อย่างไร
- 7. อธิบายแพ็คเกจ Golang?
- 8. Golang รองรับข้อมูลประเภทใดบ้าง?
- 9. คุณหมายถึงอะไรโดยการประกาศตัวแปรแบบคงที่ใน Golang?
- 10. ใน Golang การประกาศตัวแปรแบบไดนามิกคืออะไร?
- 11. ฉันจะใช้แพ็คเกจที่กำหนดเองในภาษาการเขียนโปรแกรม GO ได้อย่างไร
- 12. goroutine คืออะไร? คุณจะหยุดมันได้อย่างไร?
- 13. อธิบายอักษรรูน
- 14. Go idiom สำหรับเป็นตัวแทนของ enums คืออะไร?
- 15. ชนิดของตัวแปรได้รับการตรวจสอบเมื่อรันไทม์อย่างไร?
- 16. อธิบายช่อง Go
- 17. อธิบายวิธีการของ Golang
- 18. การแข่งขันข้อมูลคืออะไรกันแน่?
- 19. การเก็บขยะของ Go คืออะไร?
- 20. อธิบายขั้นตอนการทดสอบโดยใช้ Golang
- 21. สไลซ์ใน Go คืออะไรกันแน่?
- 22. หน่วยความจำฮีปคืออะไรกันแน่?
- 23. การปิดฟังก์ชันคืออะไรกันแน่?
- 24. คำสั่ง goto ของ Golang หมายถึงอะไร?
- 25. ใน Golang Lvalue และ Rvalue คืออะไร?
- 26. ใน Go โครงสร้างการวนซ้ำคืออะไร?
- 27. รูปแบบการออกแบบคืออะไรกันแน่?
- 28. แพ็คเกจ Golang ที่ดีที่สุดสำหรับการดำเนินการไฟล์อย่างง่ายคืออะไร? แพ็คเกจ Golang เพิ่มเติมใดบ้างที่ใช้สำหรับการจัดการไฟล์
- 29. ให้คำอธิบายเกี่ยวกับสถาปัตยกรรมเชิงวัตถุของ Golang
- 30. Golang รองรับการแปลงประเภทใดบ้าง
- 31. อธิบายวัตถุประสงค์และการดำเนินการของการยืนยันประเภท
- 32. ประเภทโครงสร้างคืออะไรกันแน่?
- 33. อธิบายอาร์เรย์สำรองของค่าสไลซ์
- 34. จำเป็นต้องมีทั้งตัวแปร GOPATH และ GOROOT หรือไม่ และถ้าเป็นเช่นนั้น เพราะอะไร
- 35. Golang เปิดใช้งานการสืบทอดหรือไม่?
- 36. ใน Golang CGo ปรากฏอย่างไร?
- 37. ตัวชี้ใน Golang คืออะไร?
- สรุป
ภาษาโปรแกรม Go หรือที่เรียกกันทั่วไปว่า golangเป็นภาษาโปรแกรมโอเพนซอร์ซที่เทียบได้กับภาษา C แต่ได้รับการออกแบบมาเพื่อการคอมไพล์ที่รวดเร็ว การทำงานพร้อมกันที่ราบรื่น และความสะดวกของนักพัฒนา
ภาษานี้ได้รับการพัฒนาและใช้งานโดย Google แต่ได้รับแรงฉุดจากบริษัทอื่นๆ ในช่วงไม่กี่ปีที่ผ่านมา เนื่องจากความต้องการการเขียนโปรแกรมบนเครือข่ายพร้อมกันเพิ่มขึ้น
Golang ทำให้การพัฒนาง่ายขึ้นสำหรับนักพัฒนา โดยนำเสนอการรวบรวมที่เหมาะสมที่สุดสำหรับการพัฒนาแอปพลิเคชันซอฟต์แวร์อย่างรวดเร็ว การทำงานพร้อมกันที่ราบรื่นยิ่งขึ้น เพิ่มประสิทธิภาพรันไทม์ และข้อบกพร่องน้อยลง
Golang กำลังกลายเป็นภาษาเขียนโปรแกรมสำหรับองค์กรที่ได้รับความนิยมอย่างรวดเร็ว ด้วยตัวเลือกการจ้างงานที่หลากหลาย ยักษ์ใหญ่ด้านไอทีหลายแห่ง เช่น Google, Uber และ Apple ต่างชื่นชอบ Golang เนื่องจากใช้เวลาในการพัฒนาที่สั้นลง ความง่ายในการเรียนรู้ รันไทม์ที่ปรับปรุงแล้ว การรวบรวมขยะ และประโยชน์อื่นๆ
เนื่องจากบริษัทจำนวนมากขึ้นใช้ Golang ความต้องการโปรแกรมเมอร์ Golang จึงเพิ่มขึ้น บรรทัดล่าง? การเรียนรู้ Golang จะให้โอกาสการจ้างงานหลายประการ
หากคุณต้องการทำงานเป็นนักพัฒนา Golang คุณต้องเตรียมพร้อมสำหรับการสัมภาษณ์อย่างเพียงพอ นั่นคือเหตุผลที่เรารวบรวมคำถามสัมภาษณ์ Golang ที่ครอบคลุมนี้
ในโพสต์นี้ เราจะนำเสนอคำถามสัมภาษณ์ Golang ขั้นพื้นฐานถึงขั้นสูง เพื่อให้คุณสามารถผ่านการสัมภาษณ์ได้อย่างง่ายดาย
1. อธิบายโกลัง
ไปเป็นระดับสูง วัตถุประสงค์ทั่วไป ภาษาโปรแกรม ที่รองรับการรวบรวมขยะและการเขียนโปรแกรมพร้อมกันและพิมพ์อย่างแน่นหนาและคงที่ แอปพลิเคชัน Go สร้างขึ้นโดยใช้แพ็คเกจ ซึ่งให้การจัดการการพึ่งพาที่มีประสิทธิภาพ
นอกจากนี้ยังใช้ประโยชน์จากแนวทางคอมไพล์ลิงค์เพื่อสร้างไบนารีที่เรียกใช้งานได้จากซอร์สโค้ด Go เป็นภาษาที่ตรงไปตรงมาพร้อมโครงสร้างวากยสัมพันธ์ที่สวยงามและชัดเจน
มันมาพร้อมกับชุดของไลบรารีมาตรฐานที่แข็งแกร่งที่นักพัฒนาสามารถใช้เพื่อแก้ไขปัญหาโดยไม่ต้องใช้แพ็คเกจอื่น
2. Go มีข้อได้เปรียบอะไรมากกว่าภาษาอื่น?
- Go code ได้รับการพัฒนาโดยคำนึงถึงการใช้งานได้จริง ตรงกันข้ามกับภาษาอื่นๆ ที่เริ่มต้นจากการทดลองทางปัญญา ทุกตัวเลือกในไวยากรณ์และคุณลักษณะสร้างขึ้นโดยคำนึงถึงความสะดวกของโปรแกรมเมอร์เป็นหลัก
- เนื่องจากการรวบรวมขยะอัตโนมัติทำงานควบคู่ไปกับแอปพลิเคชัน จึงมีประสิทธิภาพมากกว่า Java หรือ Python
- ความสามารถในการปรับขนาดและการทำงานพร้อมกันมีความสำคัญใน Golang
- Golang มักจะถือว่าเข้าใจได้ง่ายกว่าภาษาอื่น เนื่องจากมีโครงสร้างรหัสมาตรฐานเดียว
3. ในการเขียนโปรแกรม Golang fmt คืออะไร?
แพ็คเกจรูปแบบแสดงด้วยสัญลักษณ์ fmt ผู้ใช้สามารถใช้ฟังก์ชันนี้เพื่อจัดรูปแบบข้อความพื้นฐาน ค่า หรือสิ่งอื่นใดแล้วพิมพ์ออกมา
นอกจากนี้ยังช่วยให้ผู้ใช้รับอินพุตเทอร์มินัล เขียนไปยังไฟล์ด้วยผู้เขียน หรือแม้แต่สร้างข้อความแสดงข้อผิดพลาดที่ออกแบบเองได้ แพ็คเกจนี้เป็นข้อมูลเกี่ยวกับการจัดรูปแบบอินพุตและเอาต์พุต
4. Go Interfaces คืออะไร?
อินเทอร์เฟซใน Go แตกต่างจากภาษาอื่นๆ Go Interfaces เป็นชนิดพิเศษที่ใช้เพื่อแสดงคอลเลกชันของลายเซ็นเมธอดหนึ่งรายการขึ้นไป
อินเทอร์เฟซถูกสร้างขึ้นโดยใช้คำว่า "ประเภท" ตามด้วยชื่อและอินเทอร์เฟซของคำหลัก อินเทอร์เฟซสามารถกำหนดได้ดังนี้:
- รวบรวมวิธีการต่างๆ
- ชนิดภาพเขียน
5. ลิเทอรัลสตริงคืออะไรกันแน่?
สตริงตามตัวอักษรคือค่าคงที่สตริงที่สร้างโดยการต่อตัวอักษร ตัวอักษรสตริงแบบ Raw และ interpreted เป็นตัวอักษรสตริงสองประเภท ตัวอักษรสตริงดิบถูกปิดโดย backticks (foo) และมีอักขระ UTF-8 ที่ไม่ได้ตีความ.
การตีความสตริงตามตัวอักษรคือสตริงที่เขียนด้วยเครื่องหมายคำพูดคู่และรวมถึงอักขระใดๆ ยกเว้นการขึ้นบรรทัดใหม่และเครื่องหมายคำพูดคู่ที่ไม่สมบูรณ์
6. สภาพแวดล้อมการทำงานและพารามิเตอร์กำหนดค่าใน Golang อย่างไร
สภาพแวดล้อมการทำงานและการตั้งค่าสามารถกำหนดค่าได้โดยใช้ JSON ซึ่งใช้กันอย่างแพร่หลายในปัจจุบัน ความจริงที่ว่า JSON รวมอยู่ในไลบรารีมาตรฐานคือข้อดีหลัก
ห้องสมุดมาตรฐานมีวิธีการเขียนสำหรับวัตถุประสงค์ โครงสร้างข้อมูลซึ่งทำให้น่าอ่านมาก แพ็คเกจ YAML for Go เป็นตัวเลือกเพิ่มเติม
7. อธิบายแพ็คเกจ Golang?
แพ็คเกจคือโฟลเดอร์ที่เก็บแพ็คเกจอื่นๆ และซอร์สโค้ดในเวิร์กสเปซ Go แพ็คเกจที่เชื่อมโยงนั้นรวมโค้ดทั้งหมด รวมถึงตัวแปร ฟังก์ชัน และประเภทที่เขียนไว้ในไฟล์ต้นฉบับ
ทุกไฟล์ต้นฉบับเป็นส่วนหนึ่งของแพ็คเกจ และสามารถจัดเก็บแพ็คเกจ go ไว้ในแพ็คเกจได้เช่นกัน
8. Golang รองรับข้อมูลประเภทใดบ้าง?
Golang ใช้ประเภทต่อไปนี้:
- วิธี
- บูลีน
- เป็นตัวเลข
- เชือก
- ตัวชี้
- ฟังก์ชัน
- อินเตอร์เฟซ
- ชิ้น
- โครงสร้าง
- แผนที่
- ช่อง
- แถว
9. คุณหมายถึงอะไรโดยการประกาศตัวแปรแบบคงที่ใน Golang?
คอมไพเลอร์สามารถดำเนินการคอมไพล์ต่อไปได้โดยไม่จำเป็นต้องมีข้อมูลที่ครอบคลุมของตัวแปรด้วยการประกาศตัวแปรประเภทสแตติก ซึ่งทำให้มั่นใจได้ว่ามีตัวแปรเพียงตัวเดียวที่มีชนิดและชื่อที่ระบุ
การประกาศตัวแปรมีความสำคัญเฉพาะในระหว่างการคอมไพล์เท่านั้น คอมไพเลอร์ต้องการตัวแปรจริงและการประกาศเมื่อเชื่อมต่อกับแอปพลิเคชัน
10. ใน Golang การประกาศตัวแปรแบบไดนามิกคืออะไร?
คอมไพเลอร์ต้องอธิบายชนิดของตัวแปรในการประกาศตัวแปรประเภทไดนามิกตามจำนวนที่โอนไป ตามเงื่อนไขที่กำหนด คอมไพเลอร์ไม่ต้องการตัวแปรเพื่อจัดหมวดหมู่แบบคงที่
11. ฉันจะใช้แพ็คเกจที่กำหนดเองในภาษาการเขียนโปรแกรม GO ได้อย่างไร
หากคุณกำลังสร้างโครงการ go get -table แยกต่างหากสำหรับไลบรารีของคุณ และมีไว้สำหรับการใช้งานภายในเท่านั้น คุณสามารถเขียนโค้ดแบบนี้ได้
- วางไดเร็กทอรีไฟล์ไลบรารีภายใต้ไดเร็กทอรีของโครงการของคุณ
- อ้างถึงไลบรารีตามพาธที่สัมพันธ์กับรูทของเวิร์กสเปซที่มีโปรเจ็กต์
12. goroutine คืออะไร? คุณจะหยุดมันได้อย่างไร?
goroutine คือฟังก์ชันหรือโพรซีเดอร์ที่ทำงานพร้อมกันกับ goroutines อื่นๆ บนเธรด goroutine เฉพาะ เกลียวโกรูทีนมีน้ำหนักเบากว่าเกลียวทั่วไป และแอพพลิเคชั่น Golang ส่วนใหญ่ใช้กรูทีนนับพันพร้อมกัน
goroutine สามารถหยุดได้โดยการส่งผ่านช่องสัญญาณ Goroutines สามารถตอบสนองต่อสัญญาณได้ก็ต่อเมื่อได้รับคำสั่งให้ตรวจสอบ ดังนั้นให้รวมการตรวจสอบในสถานที่ที่เหมาะสม เช่น ด้านบนสุดของ for loop
13. อธิบายอักษรรูน
ใน Go rune เป็นประเภทในตัวที่มีชื่อ int32 Unicode CodePoint ทำหน้าที่เป็นอักษรรูนใน Go ไม่ว่าโค้ดพอยท์จะกินพื้นที่กี่ไบต์ รูนก็สามารถแสดงได้
รูนไม่จำเป็นต้องอยู่ในลำดับในสตริง แม้ว่าเราสามารถแปลงระหว่างสตริงและรูนได้ แต่ก็ไม่เหมือนกัน
14. Go idiom สำหรับเป็นตัวแทนของ enums คืออะไร?
ภาษาโปรแกรม Golang ไม่สนับสนุน enums โดยตรง Iota และค่าคงที่สามารถใช้เพื่อนำ enums ไปใช้ วิธีการใดๆ ต่อไปนี้สามารถใช้เพื่อนำประเภทที่แจกแจงไปใช้:
- แนะนำชนิดจำนวนเต็มสด
- Iota ใช้เพื่อระบุค่าของมัน
- โดยจัดให้มีฟังก์ชัน String ให้กับ type
15. ชนิดของตัวแปรได้รับการตรวจสอบเมื่อรันไทม์อย่างไร?
Type Switch เป็นวิธีที่มีประสิทธิภาพมากที่สุดในการกำหนดประเภทของตัวแปรในแบบเรียลไทม์ ตัวแปรจะถูกประเมินตามประเภทมากกว่าค่าเมื่อใช้ Type Switch
ทั้งกรณีเริ่มต้นซึ่งจะดำเนินการหากไม่มีกรณีที่เป็นจริงและมีอย่างน้อยหนึ่งกรณีซึ่งทำหน้าที่เป็นคำสั่งแบบมีเงื่อนไขในทุกสวิตช์ ตัวอย่างเช่น คุณสามารถออกแบบ Type Switch ที่กำหนดว่าค่าอินเทอร์เฟซ i รวมเป็นประเภท int หรือสตริง:
16. อธิบายช่อง Go
ช่องสัญญาณ go ช่วยให้สามารถส่งและถ่ายโอนข้อมูลระหว่าง goroutines ข้อมูลประเภทเดียวกันสามารถส่งผ่านช่องทางเดียว
Goroutines สามารถส่งและรับข้อมูลผ่านช่องสัญญาณเดียวกันได้เนื่องจากการไหลของข้อมูลแบบสองทิศทางของช่อง
17. อธิบายวิธีการของ Golang
Golang ไม่ได้จัดเตรียมคลาส แต่รองรับเมธอด เมธอดเหล่านี้เหมือนกับฟังก์ชัน ยกเว้นว่าเมธอด Go มีพารามิเตอร์ตัวรับ
วิธีการ Go มีการเข้าถึงแอตทริบิวต์ของผู้รับผ่านพารามิเตอร์ตัวรับ วิธีการ Go หรือที่เรียกว่าฟังก์ชันตัวรับ ช่วยในการนำเสนอแนวคิดที่ถูกต้องและเป็นจริงมากขึ้น
18. การแข่งขันข้อมูลคืออะไรกันแน่?
การดีบักที่พบบ่อยและยากที่สุดคือการแข่งขันข้อมูล การเข้าถึงหน่วยความจำแบบแบ่งใช้แบบไม่ซิงโครไนซ์หรือการดำเนินการของ goroutines หลายตัวพร้อมกันโดยไม่มีผลการจัดการแยกกันทำให้เกิดความผิดพลาดของการแข่งขันข้อมูล
19. การเก็บขยะของ Go คืออะไร?
การรวบรวมขยะจะนำหน่วยเก็บข้อมูลที่ได้รับการกำหนดแบบไดนามิกให้กับโปรแกรมสำหรับการใช้งานโดยอ็อบเจ็กต์อื่น คำนี้มักจะหมายถึงการสร้างใหม่อัตโนมัติของตัวรวบรวมขยะสำหรับการจัดเก็บตามปกติมากกว่ารหัสที่ชัดเจน (ที่จัดเตรียมโดยโปรแกรมเมอร์) เพื่อปล่อยบล็อกหน่วยความจำเฉพาะ
การรวบรวมขยะอัตโนมัติมักเริ่มต้นเมื่อปริมาณ RAM ว่างต่ำกว่าเกณฑ์ที่กำหนดไว้ล่วงหน้าหรือหลังจากการจัดสรรตามจำนวนที่ระบุ
การกำจัดรายการที่ซอฟต์แวร์ไม่ต้องการเพื่อสร้างสถานที่ในหน่วยความจำสำหรับวัตถุแบบไดนามิกมากขึ้นเรียกว่า "การรวบรวมขยะ"
20. อธิบายขั้นตอนการทดสอบโดยใช้ Golang
Golang ให้การทดสอบอัตโนมัติของแพ็คเกจโดยใช้ชุดทดสอบที่กำหนดเอง ในการสร้างชุดใหม่ ให้สร้างไฟล์ที่ลงท้ายด้วย _test.go และมีฟังก์ชัน TestXxx โดยที่ Xxx จะถูกแทนที่ด้วยชื่อของคุณลักษณะที่คุณกำลังทดสอบ
ฟังก์ชันที่ทดสอบความสามารถในการเข้าสู่ระบบ เช่น จะมีชื่อว่า TestLogin ไฟล์ชุดการทดสอบจะรวมอยู่ในแพ็คเกจเดียวกันกับไฟล์ที่กำลังทดสอบ
ไฟล์ทดสอบจะถูกข้ามระหว่างการดำเนินการปกติ แต่จะรันเมื่อคุณป้อนคำสั่ง go test
21. สไลซ์ใน Go คืออะไรกันแน่?
Slices เป็นประเภทข้อมูล Go ที่สำคัญซึ่งมีอินเทอร์เฟซที่มีประสิทธิภาพสำหรับลำดับมากกว่าอาร์เรย์ Slices ซึ่งแตกต่างจากอาร์เรย์ จะถูกพิมพ์โดยขึ้นอยู่กับองค์ประกอบที่มีอยู่เท่านั้น (ไม่ใช่จำนวนองค์ประกอบ)
ในการสร้างสไลซ์เปล่าที่มีความยาวไม่เป็นศูนย์ ให้ใช้คีย์เวิร์ด "make" ในตัว
22. หน่วยความจำฮีปคืออะไรกันแน่?
เราเก็บอ็อบเจ็กต์และตัวแปรที่สร้างไดนามิกไว้ในหน่วยความจำฮีป เมื่อเราไม่ใช้วัตถุอีกต่อไป เรามักจะลบหน่วยความจำฮีปที่มันครอบครอง
23. การปิดฟังก์ชันคืออะไรกันแน่?
การปิดฟังก์ชันเป็นประเภทของค่าฟังก์ชันที่สร้างตัวแปรอ้างอิงภายนอก ฟังก์ชันนี้สามารถเข้าถึงและควบคุมค่าของตัวแปรที่อ้างอิงได้
ตามภาพประกอบ การปิดที่ส่งกลับโดย adder() แต่ละรายการจะเชื่อมโยงกับตัวแปรผลรวมอ้างอิงที่แตกต่างกัน
24. คำสั่ง goto ของ Golang หมายถึงอะไร?
คำสั่ง goto ทำหน้าที่เป็นคำสั่งข้ามใน Golang Goto ใช้เพื่อจัดเตรียมการควบคุมฉลากเฉพาะสำหรับโปรแกรม
สามารถใช้เพื่อข้ามส่วนของรหัสและไปที่คำสั่งที่จำเป็น หรือสามารถใช้เพื่อทำซ้ำส่วนหนึ่งของรหัสโปรแกรมตามสถานการณ์บางอย่าง
25. ใน Golang Lvalue และ Rvalue คืออะไร?
ค่า L:
- หมายถึงสถานที่แห่งความทรงจำ
- มันสามารถเปลี่ยนแปลงได้
- มันหมายถึงตัวระบุตัวแปร
- อาจเกิดขึ้นทางด้านซ้ายหรือด้านขวาของตัวดำเนินการ =
- ในบรรทัด x =20 ตัวอย่างเช่น x คือค่า lvalue และ 20 คือค่า rvalue
ค่า Rvalue:
- มันหมายถึงค่าคงที่
- มันแสดงถึงค่าข้อมูลที่จัดเก็บในหน่วยความจำ
- มันมักจะเกิดขึ้นทางด้านขวาของตัวดำเนินการ =
- ตัวอย่างเช่น นิพจน์ 10 = 20 ไม่ถูกต้อง เนื่องจากมีค่า rvalue (10) ทางด้านซ้ายของตัวดำเนินการ =
26. ใน Go โครงสร้างการวนซ้ำคืออะไร?
มีองค์ประกอบการวนซ้ำเพียงองค์ประกอบเดียวใน Go: for loop for loop ประกอบด้วยสามส่วนที่คั่นด้วยเครื่องหมายอัฒภาค:
- คำสั่ง Init จะถูกรันก่อนที่ลูปจะเริ่มต้น มักเป็นการประกาศตัวแปรที่ปรากฏเฉพาะภายในขอบเขตของลูป for
- ก่อนการวนซ้ำแต่ละครั้ง คำสั่งเงื่อนไขจะถูกประเมินเป็นบูลีนเพื่อตัดสินใจว่าควรวนซ้ำหรือไม่
- คำสั่ง post จะทำงานเมื่อสิ้นสุดการวนซ้ำแต่ละครั้ง
27. รูปแบบการออกแบบคืออะไรกันแน่?
รูปแบบการออกแบบเป็นส่วนๆ ของโค้ดที่สามารถนำมาใช้ซ้ำเพื่อแก้ไขปัญหาซอฟต์แวร์ทั่วไปได้ หากคุณใช้รูปแบบการออกแบบ โปรเจ็กต์ของคุณจะสร้างซอฟต์แวร์แบบแยกส่วน ปรับขนาดได้ และมีประสิทธิภาพมากขึ้น รูปแบบการออกแบบช่วยคุณในการขยายแอปและทำงานร่วมกับทีม รูปแบบการออกแบบทั่วไป ได้แก่ Factory Method, Singleton, Facade และ Decorator
28. แพ็คเกจ Golang ที่ดีที่สุดสำหรับการดำเนินการไฟล์อย่างง่ายคืออะไร? แพ็คเกจ Golang เพิ่มเติมใดบ้างที่ใช้สำหรับการจัดการไฟล์
อินเทอร์เฟซที่ไม่ขึ้นกับแพลตฟอร์มมีให้โดยแพ็คเกจไลบรารีมาตรฐานของระบบปฏิบัติการ เมื่อโต้ตอบกับไฟล์ เราจะใช้ไฟล์เหล่านี้สำหรับฟังก์ชันของระบบ อินเทอร์เฟซของระบบปฏิบัติการมีความสอดคล้องกันในระบบปฏิบัติการทั้งหมด
ด้วยเหตุนี้ แอพที่เราพัฒนาจึงทำงานเหมือนกันบน Windows, Linux และ Mac แพ็คเกจไลบรารีมาตรฐาน Go อื่น ๆ ได้แก่ io, ioutil และ bufio พวกเขาทำงานกับไฟล์และเพิ่มฟังก์ชันการทำงาน อย่างไรก็ตาม ไม่จำเป็นสำหรับการดำเนินการไฟล์พื้นฐาน เราต้องการแพ็คเกจระบบปฏิบัติการเท่านั้น
29. ให้คำอธิบายเกี่ยวกับสถาปัตยกรรมเชิงวัตถุของ Golang
Golang ไม่ได้ใช้การออกแบบ class-object แบบธรรมดา การเขียนโปรแกรมเชิงวัตถุ ทำ. โครงสร้างและพฤติกรรมของข้อมูลที่ซับซ้อนจะถูกเก็บไว้ในโครงสร้างและวิธีการแทน
โครงสร้างเป็นเพียงสคีมาที่มีพิมพ์เขียวสำหรับข้อมูลที่โครงสร้างจะดำเนินการ โครงสร้างสามารถใช้เพื่อแสดงความคิดจากโลกจริงได้ เช่น หนังสือ ผู้คน หรือรถยนต์
30. Golang รองรับการแปลงประเภทใดบ้าง
เมื่อพูดถึงการพิมพ์อย่างโจ่งแจ้ง Go นั้นจู้จี้จุกจิกมาก ไม่มีการแปลงประเภทโดยอัตโนมัติ ในการกำหนดตัวแปรประเภทหนึ่งไปยังอีกประเภทหนึ่ง การแปลงประเภทจะต้องดำเนินการอย่างชัดเจน
31. อธิบายวัตถุประสงค์และการดำเนินการของการยืนยันประเภท
ใน GO การแปลงประเภทใช้เพื่อแปลงประเภทที่แตกต่างกัน ค่าที่ชัดเจนของประเภทที่ระบุจะถูกดึงออกมาจากค่าอินเทอร์เฟซโดยการยืนยันประเภท
32. ประเภทโครงสร้างคืออะไรกันแน่?
โครงสร้างประกอบด้วยรายการของส่วนประกอบที่มีชื่อเรียกว่าฟิลด์ มีชนิดและชื่อสำหรับทุกฟิลด์ อีกวิธีหนึ่งในการสร้างโครงสร้างคือกลุ่มของคุณสมบัติที่เชื่อมต่อกัน มีประโยชน์ในการรวมข้อมูลเพื่อสร้างเรกคอร์ด
33. อธิบายอาร์เรย์สำรองของค่าสไลซ์
เมื่อเราสร้างสไลซ์ Go จะสร้างอาเรย์ลับที่เรียกว่าแบ็คกิ้งหรืออาเรย์เบื้องหลังเบื้องหลัง และตัวแปรประเภทสไลซ์ใหม่จะอ้างอิงถึงมัน รายการ ไม่ใช่สไลซ์ ถูกเก็บไว้ในอาร์เรย์สำรอง
สไลซ์ถูกนำไปใช้ใน Go เป็นโครงสร้างข้อมูลที่เรียกว่าส่วนหัวของสไลซ์ ซึ่งทำหน้าที่แทนรันไทม์ของสไลซ์
34. จำเป็นต้องมีทั้งตัวแปร GOPATH และ GOROOT หรือไม่ และถ้าเป็นเช่นนั้น เพราะอะไร
ปกติก็ไม่จำเป็น ตัวแปรเดียวที่ต้องตั้งค่าให้ชี้ไปที่แผนผังแพ็กเกจ Go คือ GOPATH
GOROOT หมายถึงรูทของโฮมไดเร็กทอรีสำหรับภาษาการเขียนโปรแกรม Go อย่างไรก็ตาม เกือบจะแน่นอนแล้วว่าเป็นตำแหน่งของการติดตั้ง Go ปัจจุบัน
หากมีเวอร์ชันภาษา Go จำนวนมากในระบบเดียวกัน หรือหากดาวน์โหลดภาษา Go เป็นแพ็คเกจไบนารีจากอินเทอร์เน็ตหรือย้ายจากเครื่องอื่น จะต้องตั้งค่าตัวแปร GOROOT
35. Golang เปิดใช้งานการสืบทอดหรือไม่?
การสืบทอดเป็นแนวคิดพื้นฐานในการเขียนโปรแกรมเชิงวัตถุที่อ้างถึงการส่งต่อคุณสมบัติของซูเปอร์คลาสไปยังคลาสฐาน
เนื่องจาก Golang ไม่มีคลาส การสืบทอดทำได้สำเร็จโดยใช้การฝัง struct และ struct ไม่สามารถขยายได้โดยตรง เราจึงต้องใช้แนวคิดของการจัดองค์ประกอบเพื่อสร้างออบเจกต์ใหม่ด้วย struct
36. ใน Golang CGo ปรากฏอย่างไร?
จากไฟล์ต้นทาง Go ที่มีคุณลักษณะที่กำหนดไว้ cGo จะสร้างไฟล์ Go และ C ที่สามารถต่อกันเป็นแพ็คเกจ Go ที่ไม่ซ้ำใคร C หมายถึง "แพ็คเกจหลอก" ซึ่งเป็นวลีอื่นที่สร้างโดย cGo เพื่ออ้างถึงเนมสเปซของ C
37. ตัวชี้ใน Golang คืออะไร?
การกำหนดตัวอักษรและตัวเลขหรือป้ายกำกับสำหรับพื้นที่หน่วยความจำบางพื้นที่เรียกว่าตัวแปร ประเภทของตัวแปรที่เรียกว่าพอยน์เตอร์เก็บที่อยู่หน่วยความจำของตัวแปรอื่น
แอดเดรสของตัวแปรจะแสดงด้วยค่าพอยน์เตอร์ หรือไม่มีถ้าตัวแปรนั้นยังไม่ได้สร้าง เช่นเดียวกับที่ตัวแปรแสดงถึงตำแหน่งหน่วยความจำของค่า ตัวชี้จะชี้ไปยังที่อยู่นั้น
สรุป
เป้าหมายของภาษาโปรแกรม Golang คือการสร้างโปรแกรมที่มีประสิทธิภาพได้รวดเร็วยิ่งขึ้น บริษัทต่างๆ เริ่มใช้ Golang เมื่อพวกเขาเริ่มตระหนักถึงความเป็นไปได้ที่เป็นประโยชน์
Golang มีประสิทธิภาพอย่างมากในการจุดประกายความสนใจของนักพัฒนา เพิ่มการใช้งานพื้นฐานและด้วยเหตุนี้ โอกาสในการทำงาน คำตอบของคำถามดังกล่าว ซึ่งเป็นคำถามที่พบบ่อยที่สุดระหว่างการสัมภาษณ์ Golang สามารถช่วยให้คุณได้งาน Golang ที่คุณต้องการ
ดู ซีรี่ส์สัมภาษณ์ของ Hashdork เพื่อช่วยในการเตรียมตัวสัมภาษณ์
เขียนความเห็น