Skip to main content

แบบทดสอบ Go (Golang)

ทดสอบความเข้าใจจากทุกหัวข้อที่อ่านมา รวมคำถามระดับ "beyond" ด้วย — ถ้าตอบถูกหมด แปลว่าพร้อม สัมภาษณ์ได้เลย

แบบทดสอบท้ายบท

ตอบทุกข้อแล้วกด "ตรวจคำตอบ" เพื่อดูคะแนนและเฉลยพร้อมคำอธิบาย

1. nil map กับ nil slice ต่างกันยังไงเวลา "เขียน" ค่าเข้าไป?
2. ทำไม `err := doSomething(); err == nil` อาจได้ `false` ทั้งที่ function return `nil` ไปจริงๆ ผ่าน pointer ที่เป็น nil?
3. Goroutine ใช้ scheduling model แบบไหน และทำไมถึงเบากว่า OS thread มาก?
4. `internal/` package ของ Go ถูกบังคับยังไงไม่ให้ import จากที่อื่น?
5. ทำไม `make([]T, 0, n)` กับ `make([]T, n)` ถึงต่างกันสำคัญเวลาใช้ร่วมกับ append?
6. หลักการ "accept interfaces, return structs" หมายความว่ายังไง?
7. ทำไมต้องเปิด `go run -race` เวลาเขียนโค้ด concurrent?