
Reflection
แพ็กเกจ reflect, การตรวจสอบ type, การจัดการ value, struct tags, กรณีการใช้งาน, ประสิทธิภาพ
1แพ็กเกจ reflect ใน Go คืออะไร?
แพ็กเกจ reflect ใน Go คืออะไร?
คำตอบ
แพ็กเกจ reflect ช่วยให้สามารถตรวจสอบและจัดการ type และ value ขณะรันไทม์ได้ ใช้สำหรับการสร้างไลบรารีแบบทั่วไป (JSON marshaling, ORM) แต่ไม่แนะนำให้ใช้โดยตรงในโค้ดแอปพลิเคชันเพราะลดทอนความปลอดภัยของ type และประสิทธิภาพ
2จะได้ type ของตัวแปรด้วยแพ็กเกจ reflect อย่างไร?
จะได้ type ของตัวแปรด้วยแพ็กเกจ reflect อย่างไร?
คำตอบ
ฟังก์ชัน reflect.TypeOf() คืนค่า reflect.Type ที่แทน type แบบไดนามิกของ interface ที่ส่งเป็นอาร์กิวเมนต์ หากตัวแปรเป็น nil reflect.TypeOf() จะคืนค่า nil การใช้ .Kind() บน Type ที่คืนค่ามาช่วยให้ได้หมวดหมู่ของ type (int, string, struct ฯลฯ)
3ความแตกต่างระหว่าง reflect.Type และ reflect.Value คืออะไร?
ความแตกต่างระหว่าง reflect.Type และ reflect.Value คืออะไร?
คำตอบ
reflect.Type แทน metadata ของ type (ชื่อ, kind, เมธอด, ฟิลด์) และได้มาผ่าน reflect.TypeOf() ส่วน reflect.Value แทน value ที่เป็นรูปธรรมและช่วยให้อ่านหรือแก้ไขได้ผ่าน reflect.ValueOf() ทั้งสองเสริมกัน: Type อธิบาย 'อะไร' และ Value บรรจุ 'ข้อมูล'
จะแก้ไขค่าของตัวแปรผ่าน reflection อย่างไร?
reflect.Kind คืออะไร?
+17 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ Go อื่นๆ
พื้นฐาน Go
โครงสร้างข้อมูล Go
อินเทอร์เฟซใน Go
การจัดการข้อผิดพลาด
พื้นฐาน Goroutine
Channels
Go Modules
เซิร์ฟเวอร์ HTTP
ไคลเอนต์ HTTP
การเข้ารหัส JSON
Database/SQL
แพ็กเกจ context
Testing
รูปแบบ Concurrency
ไพรมิทีฟการซิงโครไนซ์
เฟรมเวิร์กเว็บ Go
การออกแบบ REST API
gRPC
การจัดการหน่วยความจำ
การเพิ่มประสิทธิภาพการทำงาน
Generics
Go Design Patterns
Microservices
ความปลอดภัยและการยืนยันตัวตน
Docker & Containerization
Kubernetes Basics
Go ขั้นสูง
การพัฒนา CLI
เชี่ยวชาญ Go สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี