ایک method کا receiver وہ value ہے جس پر یہ کام کرتا ہے، method کے نام سے پہلے declare کیا جاتا ہے۔ یہ value receiver (ایک کاپی پر کام کرتا ہے) یا pointer receiver (اصل پر کام کرتا ہے، اسے تبدیل کر سکتا ہے) ہو سکتا ہے۔ صحیح انتخاب اہم ہے - درستگی (mutation) اور کارکردگی دونوں کے لیے۔
Value receiver — ایک COPY پر کام کرتا ہے
Counter { count }
Increment() {
c.count++
}
c := Counter{}
c.Increment()
fmt.Println(c.count)
