Pointer receiver'lar
Metodlarni pointer receiver'lar bilan e'lon qilish mumkin.
Bu shuni anglatadiki, receiver tipi biror T uchun *T ko'rinishida yoziladi. (Shuningdek, T ning o'zi *int kabi pointer bo'lishi mumkin emas.)
Masalan, bu yerda Scale metodi *Vertex uchun e'lon qilingan.
Pointer receiver'li metodlar receiver ko'rsatib turgan qiymatni o'zgartirishi mumkin (
Scalebu yerda aynan shunday qiladi).
Metodlarga ko'pincha o'z receiver'sini o'zgartirish kerak bo'lgani uchun, pointer receiver'lar qiymat receiver'lardan ko'ra ko'proq uchraydi.
16-qatordagi Scale funksiyasi e'lonidan * ni olib tashlab, dastur xatti-harakati qanday o'zgarishini kuzating.
Qiymat receiver bilan Scale metodi asl Vertex qiymatining nusxasi ustida ishlaydi. (Bu har qanday boshqa funksiya argumentidagi xatti-harakat bilan bir xil.)
main funksiyasida e'lon qilingan Vertex qiymatini o'zgartirish uchun Scale metodi pointer receiver'ga ega bo'lishi shart.
Yechimni kodning pastki qismidagi
Topshiriqlarbo'limiga yozing, so'ng Submit tugmasini bosing. Mavzu mustahkam o'zlashishi uchun ikkala topshiriqni ham bajaring.
Vertex uchun pointer receiver'li Reset() metodini yozing: ikkala koordinatani nolga tushirsin.
Vertex uchun pointer receiver'li Siljit(dx, dy float64) metodini yozing: nuqtani joyida dx, dy ga siljitsin (X += dx, Y += dy).