100 Go Mistaker เรื่อง Unintended variable shadowing
เป็นการสรุปจากหนังสือ 100-go-mistakes
Unintended variable shadowing
มักจะเกิดขึ้นเมื่อตัวแปร์ถูกประการซ้ำที่ inner block ในตัวอย่างจะแสดงให้เห็นสิ่งที่มักทำให้เกิด variable shadowing อาจเกิดจากสไตล์การเขียนของแต่ละคน เช่น บางครั้งเรามักจะใช้ err ซ้ำตัวเดิม แต่ยังไงก็ต้องเข้าใจว่าเราอาจไม่ได้รับค่าที่ได้รับจากฟังก์ตามที่เราคาดหวัง
ในตัวอย่าง จะพูดถึงการประกาศใช้งานตัวแปร์ “HTTP client” โดยให้ “tracing” เป็น boolean
จากตัวอย่าง code ด้านบนมีการสร้าง client จากนั้นมีการใช้ shot declaration ที่มีการ assgn result กลับมายัง clientใน if ทั้งสอง
เราจะหมั่นใจได้อย่างไรว่า result จะถูก assign กลับมายัง client ตัวแรกที่เราประกาศไว้?
ซึ่งในหนังสือแนะนำ 2 สองวิธีสำหรับปัญหานี้
- Uses Temporary variable
2. Uses The Assignment Operator (=)
code ตัวอย่างจากหนังสือ
100-go-mistakes/main.go at master · teivah/100-go-mistakes (github.com)