English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Goلغة البرمجة أو إشارة Golang هي مغير، يستخدم لتخزينالم変المرجع المادي. وماتریسیک توالی طولی ثابت است که برای ذخیره عناصر مشابه در حافظه استفاده میشود.
میتوانید از اشارهگر به آرایه استفاده کنید و آن را به عنوان پارامتر به دالة ارسال کنید. برای درک این مفهوم، بیایید مثالی بزنیم. در برنامه زیر، ما از آرایهای شامل اشارهگر به آرایهای از 5 عنصر استفاده میکنیمarrاستفاده میکنیم. ما باید از دالة برای بهروزرسانی این آرایه استفاده کنیم. این به معنای بهروزرسانی آرایه در داخل دالة (در اینجا آرایه arr) است.{78،89،45،56،14})، و تغییرات در مکان فراخواننده منعکس خواهد شد. بنابراین، در اینجا ما ازupdatearrayدالایی که پارامتر نوع اشارهگر به آرایه دارد. با استفاده ازupdatearray(&arr)کد، ما آدرس آرایه را ارسال کردیم. در داخل دالة (*funarr)[4] = 750 یا funarr[4] = 750 با استفاده از روش رفرنسدهی به آرایه مقدار جدید را تنظیم میکنیم، که در آرایه اصلی نیز اعمال میشود. در نهایت، برنامه خروجی [78 89 45 56 750] را نشان میدهد.
// برنامهنویسی Golang // آرایه بهعنوان پارامتر دالة package main import "fmt" // تعریف یک دالة func updatearray(funarr *[5]int) { // برای تغییر مقدار با استفاده از شمارهی محدوده (*funarr)[4] = 750 // میتوانید بنویسید // خطوط کد بالا // funarr[4] = 750 } func main() { // دریافت اشارهگر به آرایه arr := [5]int{78, 89, 45, 56, 14} // اشارهگر به آرایه را ارسال کنید // و اجرای updatearray updatearray(&arr) // آرایه بهروزرسانیشده fmt.Println(arr) }
النتيجة:
[78 89 45 56 750]
توجه:در Golang، استفاده از اشارهگر به آرایه بهعنوان پارامتر دالة توصیه نمیشود، زیرا کد خوانا میشود. همچنین، این روش خوبی برای انجام این کار نیست. به جای آن، میتوانید از سلسله استفاده کنید تا به جای انتقال اشارهگر، سلسله را ارسال کنید.
// برای توضیح برنامهنویسی Golang // استفاده از سلسله بهعنوان پارامتر دالة package main import "fmt" func updateslice(funarr []int) { // بهروزرسانی مقدار // در موقع مشخص funarr[4] = 750 } func main() { // تعريف سلسلة s := [5]int{78, 89, 45, 56, 14} // برای انتقال به // دالة updateslice updateslice(s[:]) // عرض النتيجة fmt.Println(s) }
النتيجة:
[78 89 45 56 750]