receiver ของ method คือค่าที่มันดำเนินการกับมัน ซึ่งถูกประกาศไว้ก่อนชื่อ method มันสามารถเป็น value receiver (ดำเนินการกับสำเนา) หรือ pointer receiver (ดำเนินการกับตัวจริง สามารถแก้ไขได้) การเลือกให้ถูกต้องมีความสำคัญทั้งต่อความถูกต้อง (การแก้ไขข้อมูล) และประสิทธิภาพ
value receiver — ดำเนินการกับสำเนา
Counter { count }
Increment() {
c.count++
}
c := Counter{}
c.Increment()
fmt.Println(c.count)
