Pointers as function parameters
Go dilində varsayılan olaraq bütün parametrlər funksiyaya dəyər üzrə ötürülür. Məsələn:
Bu nümunədə changeValue
funksiyası parametri kvadratına yüksəldir, lakin bu, d
dəyişəninə təsir etmir. Çünki funksiya, d
dəyişəninin surətini alır və onunla işləyir, orijinal dəyişən dəyişməz qalır.
Pointerlərdən istifadə edərək dəyişəni dəyişmək
Əgər biz ötürülən dəyişənin dəyərini dəyişmək istəyiriksə, pointerlərdən istifadə edə bilərik:
Burada changeValue
funksiyası int
tipli obyektin pointeri qəbul edir. Funksiyanı çağırarkən, d
dəyişəninin ünvanını ötürürük (changeValue(&d)
), bu da funksiyaya həmin dəyişəni dəyişməyə imkan verir. Nəticədə d
-nin dəyəri dəyişir.
Pointeri funksiyadan nəticə kimi qaytarmaq
Funksiya pointer qaytara bilər:
Bu nümunədə, createPointer
funksiyası int
tipli obyektin pointeri qaytarır. Funksiya yeni bir int
obyekti yaradır, ona dəyər mənimsədir və həmin obyektin pointeri qaytarır.