คำถามสัมภาษณ์ 20 GO (Golang) ยอดนิยม (2025)
ต่อไปนี้เป็นคำถามและคำตอบในการสัมภาษณ์ของ Golang สำหรับนักศึกษาใหม่รวมถึงผู้สมัคร GO Programmer ที่มีประสบการณ์เพื่อรับงานในฝัน
1) อธิบายว่า GO คืออะไร?
GO เป็นภาษาโปรแกรมโอเพ่นซอร์สซึ่งทำให้ง่ายต่อการสร้างซอฟต์แวร์ที่เรียบง่าย เชื่อถือได้ และมีประสิทธิภาพ โปรแกรมถูกสร้างขึ้นจากแพ็คเกจซึ่งมีคุณสมบัติช่วยให้สามารถจัดการการพึ่งพาได้อย่างมีประสิทธิภาพ
ดาวน์โหลด PDF ฟรี: คำถามและคำตอบสัมภาษณ์โปรแกรม GO
2) ไวยากรณ์ใน GO คืออะไร?
ไวยากรณ์ใน GO ถูกระบุโดยใช้ Extended Backus-Naur Form (EBNF)
- การผลิต = ชื่อการผลิต “=” [ นิพจน์ ]
- นิพจน์ = ทางเลือก { “l” ทางเลือก }
- ทางเลือก = เทอม { เทอม }
- เทอม = Production_name l โทเค็น [ “…”โทเค็น] l กลุ่ม l ตัวเลือก l การทำซ้ำ
- กลุ่ม = “ ( “ การแสดงออก”)”
- ตัวเลือก = “ [ “ นิพจน์ “ ]”
- การทำซ้ำ = “ {“ การแสดงออก “}”
3) อธิบายว่าสตริงตัวอักษรคืออะไร?
ตัวอักษรสตริงแสดงถึงค่าคงที่สตริงที่ได้รับจากการต่อลำดับอักขระเข้าด้วยกัน มี 2 รูปแบบ คือ
- ตัวอักษรสตริงดิบ: ค่าของตัวอักษรสตริงดิบคือลำดับอักขระระหว่างเครื่องหมายคำพูดด้านหลัง '' ค่าของตัวอักษรสตริงคือสตริงที่ประกอบด้วยอักขระที่ไม่ขาดตอนระหว่างเครื่องหมายคำพูด
- ตัวอักษรสตริงที่ตีความ: มันถูกแสดงระหว่างเครื่องหมายคำพูดคู่ ““ ข้อความระหว่างเครื่องหมายคำพูดคู่ซึ่งอาจไม่มีการขึ้นบรรทัดใหม่จะสร้างค่าตามตัวอักษร
4) อธิบายแพ็คเกจในโปรแกรม Go?
โปรแกรม GO ทุกโปรแกรมประกอบด้วยแพ็คเกจ โปรแกรมเริ่มทำงานเป็นแพ็คเกจ หลัก. โปรแกรมนี้ใช้แพ็คเกจที่มีเส้นทางการนำเข้า "เอฟเอ็ม" and “คณิตศาสตร์/แรนด์”
5) อธิบายพื้นที่ทำงานใน GO?
ต้องเก็บรหัส GO ภายในพื้นที่ทำงาน พื้นที่ทำงานคือลำดับชั้นไดเร็กทอรีที่มีไดเร็กทอรีสามไดเร็กทอรีอยู่ที่ราก
- src มีไฟล์ต้นฉบับ GO ที่จัดเป็นแพ็คเกจ
- pkg มีวัตถุแพ็คเกจและ
- bin มีคำสั่งปฏิบัติการ
6) อธิบายวิธีใช้แพ็คเกจแบบกำหนดเองในภาษา GO?
หากคุณกำลังสร้างไลบรารี่ของคุณเป็นโปรเจ็กต์ go get –table แยกต่างหาก และหากไลบรารีของคุณมีไว้สำหรับใช้ภายใน คุณก็สามารถใช้โค้ดเช่นนี้ได้
- ใต้ไดเร็กทอรีของโปรเจ็กต์ของคุณให้วางไดเร็กทอรีที่มีไฟล์ไลบรารี
- อ้างถึงไลบรารีโดยใช้เส้นทางที่สัมพันธ์กับรูทของพื้นที่ทำงานของคุณที่ประกอบด้วยโปรเจ็กต์
ตัวอย่างเช่น src/ myproject/ mylib/ mylib.go - - main.go ตอนนี้ ใน main.go คุณทำได้ นำเข้า myprojec/mylib.php.
7) อธิบายว่าตัวแปรสภาพแวดล้อม GOPATH คืออะไร
ตัวแปรสภาพแวดล้อม GOPATH กำหนดตำแหน่งของเวิร์กสเปซ เป็นตัวแปรสภาพแวดล้อมเดียวที่คุณต้องตั้งค่าเมื่อพัฒนาโค้ด Go
8) อธิบายว่าคุณสามารถทดสอบใน GO ได้อย่างไร?
โดยมีกรอบการทดสอบแบบน้ำหนักเบาประกอบด้วย ไปทดสอบ คำสั่งและ การทดสอบ บรรจุุภัณฑ์. ในการเขียนแบบทดสอบ คุณต้องสร้างไฟล์ที่มีชื่อลงท้ายด้วย _testing Go ซึ่งมีฟังก์ชันชื่อ TestXXX พร้อมด้วย func ลายเซ็น (t *testing.T) กรอบการทดสอบจะรันแต่ละฟังก์ชันดังกล่าว
9) อธิบายว่าประเภทสตริงคืออะไร?
ประเภทสตริงแสดงถึงชุดของค่าสตริง และค่าสตริงเป็นลำดับไบต์ เมื่อสร้างสตริงแล้วจะไม่สามารถเปลี่ยนแปลงได้
10) GO มีข้อดีอย่างไร?
- GO คอมไพล์เร็วมาก
- Go รองรับการทำงานพร้อมกันในระดับภาษา
- ฟังก์ชั่นเป็นวัตถุชั้นหนึ่งใน GO
- GO มีการรวบรวมขยะ
- สตริงและแผนที่ถูกสร้างขึ้นในภาษา
11) แสดงรายการการสนับสนุนในตัวใน GO?
การสนับสนุนในตัวที่มีอยู่ใน GO รวมถึง
- คอนเทนเนอร์: คอนเทนเนอร์/รายการ , คอนเทนเนอร์/ฮีป
- เว็บเซิร์ฟเวอร์: net/http
- การเข้ารหัส: Crypto/md5 , crypto/sha1
- การบีบอัด: บีบอัด/ gzip
- ฐานข้อมูล: ฐานข้อมูล/sql
12) อธิบายว่า go รูทีนใน GO คืออะไร? คุณจะหยุดทำกิจวัตรประจำวันได้อย่างไร?
goroutine เป็นฟังก์ชันที่สามารถทำงานพร้อมกันกับฟังก์ชันอื่นๆ ในการหยุด goroutine คุณจะต้องผ่านช่องสัญญาณ goroutine โดยช่องสัญญาณนั้นจะใช้ในการส่งค่าเข้าไปเมื่อคุณต้องการให้ goroutine หยุด goroutine จะสำรวจช่องนั้นเป็นประจำทันทีที่ตรวจพบสัญญาณ มันก็จะหยุดลง
Quit : = make (chan bool) go func ( ) { for { select { case <- quit: return default // do other stuff } } }() // Do stuff // Quit goroutine Quit <- true
13) อธิบายว่าคุณสามารถเขียนสตริงหลายบรรทัดใน GO ได้อย่างไร?
หากต้องการเขียนสตริงหลายบรรทัดใน GO คุณสามารถใช้สตริงลิเทอรัลดิบได้ โดยที่สตริงจะถูกคั่นด้วยเครื่องหมายคำพูดด้านหลัง แทนที่จะเป็นเครื่องหมายคำพูดคู่ 'บรรทัดที่ 1 บรรทัดที่ 2 บรรทัดที่ 3'
14) อธิบายวิธีเข้าถึงอาร์กิวเมนต์บรรทัดคำสั่งที่ส่งไปยังโปรแกรม GO
คุณสามารถเข้าถึงอาร์กิวเมนต์บรรทัดคำสั่งได้โดยใช้ os.Args ตัวแปร ตัวอย่างเช่น,
Package main import ( "fmt" "OS" ) func main () { fmt.Println(len(os.Args), os.Args) }
15) อธิบายวิธีการแสดงตัวชี้ใน GO?
ใน GO ตัวชี้จะแสดงโดยใช้อักขระ * (เครื่องหมายดอกจัน) ตามด้วยประเภทของค่าที่เก็บไว้
16) คุณจะจัดรูปแบบสตริงโดยไม่ต้องพิมพ์ได้อย่างไร?
หากต้องการจัดรูปแบบสตริงโดยไม่ต้องพิมพ์คุณต้องใช้คำสั่ง
return fmt.Sprintf ( "at %v, %s" , e.When , e.What )
17) อธิบายว่าอาร์เรย์ใน GO ทำงานแตกต่างจาก C อย่างไร
ในไป แถว ทำงานแตกต่างจากที่ทำงานใน C
- อาร์เรย์คือค่า การกำหนดอาร์เรย์หนึ่งให้กับอีกอาร์เรย์หนึ่งจะคัดลอกองค์ประกอบทั้งหมด
- หากคุณส่งผ่านอาร์เรย์ไปยังฟังก์ชัน มันจะได้รับสำเนาของอาร์เรย์ ไม่ใช่ตัวชี้ไปยังฟังก์ชันนั้น
- ขนาดของอาร์เรย์เป็นส่วนหนึ่งของประเภท ประเภท [10] int และ [20] int นั้นแตกต่างกัน
18) อธิบาย GO Interfaces ?
ใน GO อินเทอร์เฟซเป็นวิธีระบุพฤติกรรมของวัตถุ อินเทอร์เฟซถูกสร้างขึ้นโดยใช้ “type†word ตามด้วยชื่อและอินเทอร์เฟซคำหลัก อินเทอร์เฟซถูกระบุเป็นสองสิ่ง
- ชุดวิธีการ
- นอกจากนี้ยังเรียกว่าประเภท
19) อธิบายว่า Type assertion ใช้ทำอะไร และทำอย่างไร?
การแปลงประเภทใช้เพื่อแปลงประเภทที่ไม่เหมือนกันใน GO การยืนยันประเภทจะใช้ค่าอินเทอร์เฟซและดึงค่าจากประเภทที่ชัดเจนที่ระบุ
20) ในภาษา GO คุณจะตรวจสอบประเภทตัวแปรตอนรันไทม์ได้อย่างไร?
GO มีสวิตช์ประเภทพิเศษโดยเฉพาะเพื่อตรวจสอบประเภทตัวแปรขณะรันไทม์ สวิตช์นี้เรียกว่าสวิตช์ประเภท นอกจากนี้ คุณยังสามารถเปิดประเภทของค่าอินเทอร์เฟซได้ด้วย Type Switch
คำถามสัมภาษณ์เหล่านี้จะช่วยในวีว่าของคุณ (วาจา)
คอลเลกชันที่ดีของคำถาม GoLang