پوینترها در golang
پوینتر یه ارزشه، که مقدارش آدرس یه جای دیگهای از حافظست، و یکی از مزیت هاش توی بسیاری از کاربرد هاش افزایش سرعت و عملکرد برنامست.
اگه زبون هایی مثل c++ کار کرده باشید، احتمالا مفهوم اشاره گر ها توی گولنگ براتون مثل اسباب بازی باشه. چون خیلی ساده تر و محدود شده تره.
برای تعریف یه متغیر به عنوان یه پوینتر، قبل از نوع داده فقط یه ستاره میزاریم. مثلا:
var x *intو برای مقدار دهیش، آدرس اون متغیر اصلی که میخوایم بهش اشاره کنیم رو مقدار x قرار میدیم. گذاشتن & قبل از متغیر، آدرس اون متغیر توی حافظه رو به ما برمیگردونه.
x = &yتموم شد. الان x یه پوینتر هست به y.
برای تنظیم مقدار y از طریق اشارهگرش(x) یه * قبل از متغیر اشاره گر(x) میزاریم.
*x = 3توی این حالت، مقدار y به 3 تغییر پیدا میکنه.
ممکنه اولش گیج کننده باشه، ولی برای * دو تا کاربرد کلی وجود داره برای دو تا مفهوم جدا: تعریف پوینتر و دریافت مقدار متغیری که پوینتر به آن اشاره میکنه. برای تعریف پوینتر، علامت * قبل از نوع داده قرار میگیره. برای دسترسی به مقدار اصلی * قبل از خود متغیر پوینتر قرار میگیره.