คำถามสัมภาษณ์ 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 มีคำสั่งปฏิบัติการ
คำถามสัมภาษณ์ Golang
คำถามสัมภาษณ์ Golang

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) กรอบการทดสอบจะรันแต่ละฟังก์ชันดังกล่าว

คำถามสัมภาษณ์การเขียนโปรแกรม GO
คำถามสัมภาษณ์การเขียนโปรแกรม GO

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

คำถามสัมภาษณ์เหล่านี้จะช่วยในวีว่าของคุณ (วาจา)

Share

หนึ่งความคิดเห็น

  1. รูปโพรไฟล์ อนันต์ ฮาราล พูดว่า:

    คอลเลกชันที่ดีของคำถาม GoLang

เขียนความเห็น

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมาย *