ورود و ثبت نام

آموزش زبان برنامه نویسی گولنگ Go برای هکرها (آرایه و slice)

خواندن این مطلب

3 دقیقه

زمان میبرد!

آموزش زبان برنامه نویسی گولنگ Go برای هکرها (آرایه و slice)

                                       


آرایه در زبان گو

به لطف گو نیازی نیست توضیح آرایه رو پیچیده کنیم، کل جریان اینه که آرایه یه اجتماعی از متغیر ها هستن. برای مثال من میخوام 100 تا متغیر int تعریف کنم،  آیا منطقیه بیام واقعا 100 تا متغیر با کلیدواژۀ var تعریف کنم؟

قطعا نه، کار خیلی بهتر اینه بیام بگم:

تعجب کردی از (=:) ؟  این یه روش تعریف متغیر دیگه هست که ما اسم متغیری که میخوایم رو مینویسیم و بعد فقط کافیه مقدار دهیش کنیم تا تایپ متغیر رو خود گو برامون تشخیص بده.

حالا اینجا ما از این روش یه آرایه تعریف کردیم. ابتدا اسم آرایه رو مشخص کردیم که همون array هست توی تصویر، و بعد یه کروشه باز کردیم و داخلش نوشتیم 100، یعنی ما 100 تا متغیر نیاز داریم، بعد از کروشه هم تایپ متغیر رو مشخص میکنیم که اینجا نوشتیم int و در نهایت هم یه آکولاد بازو بسته میکنیم {}.

این ساده ترین حالت تعریف آرایه هست. نتیجه این کد میشه اینکه ما 100 تا متغیر int داریم که به شکل زیر میتونیم ازشون استفاده کنیم:

دقت داشته باشید شمارش آرایه ها از 0 شروع میشه، یعنی اگه ما یه آرایۀ 100 تایی ساختیم، شمارۀ اولین متغیر آرایۀ ما 0 هست و آخرین متغیر توی این آرایۀ 99 هست.

همچنین ما در زمان تعریف آرایه هم میتونیم آرایه رو مقداردهی کنیم، درواقع کار اون آکولاد باز و بسته همینه، مثلا من میخوام IP هفت تا سرور رو توی یه متغیر داشته باشم و مقداردهی هم در زمان تعریف متغیر انجام بدم، کافیه به این صورت عمل کنم:

ابتدا نام آرایه رو مشخص کردیم، تعداد متغیر ها رو مشخص کردیم، تایپ متغیری که میخوایم رو مشخص کردیم و در نهایت مقداردهی اولیه انجام دادیم.

حالا با دستور fmt.Print(servers[0]) آیپی اولین سرور توی این آرایه رو میتونیم چاپ کنیم.

Ellipsis

اگه بخواید همین آرایه servers رو بدون تعیین کردن طول آرایه تعریف کنیم، یعنی کلا بهش نگیم 7 تا متغیر string میخوایم؛ به راحتی با گذاشتن (…) بجای عدد، میتونیم به کامپایلر اجازه بدیم خودش تعداد رو حساب کنه و ما فقط عملیات مقداردهی رو انجام بدیم:

تعریف آرایۀ چندبعدی

نترس، فکر کن همونجوری که چند تا متغیر رو ریختیم توی آرایۀ array، چند تا از خود آرایه ای هم که ساختیم بریزیم توی یه متغیر آرایه ای دیگه،

یعنی توی آرایۀ لایه اول، چند تا آرایه میبینیم، بعد تو هرکدومشون هم یه متغیر int میبینیم.

array[3][2][65]

درمورد کد بالا فکر کن array یه خونه است و توش 3 تا اتاق میبینی، همون ایندکس 3 که نوشتم؛ هرکدوم از این 3 اتاق، داخلشون 2 تا اتاق دیگه هست، مثلا ما اتاق سومی رو باز کردیم و توش 2 تا اتاق دیگه دیدیم.

این 2 تا اتاق جزو لایه دوم آرایه ی چند بعدی ما هستن، که داخل هرکدوم از این دو اتاق، 100 تا اتاق دیگه وجود داره، که ما اتاق 65 رو میخوایم، پس سومین اندیسی که میخوایم 65 هست. در نهایت اینجا ما به متغیر int شمارۀ 65 در دومین اتاق از لایه دوم و سومین اتاق از لایه اول دسترسی پیدا کردیم و میتونیم مقداردهیش کنیم یا اینکه مقدار داخلش رو بخونیم.


slice

این متغیر ها شبیه آرایه هستن ولی خیلی انعطاف پذیر تر. 

یکی ویژگی هاش اینه که برخلاف آرایه ما میتونیم سایز slice رو کمو زیاد کنیم. slice ها هم با استفاده تابع make ساخته میشن هم با تعریف آرایه با فرمت زیر:

slice := []int{1,2,3,4}

تابع len

این تابع طول آرایه و slice هارو بهمون میده، به صورت len(variable) استفاده میشه.

 

 

در قسمت بعدی راجب مبحث map  در زبان گو صحبت میکنیم امیدوارم که لذت برده باشید.

درباره نویسنده



نظرات کاربران



دیدگاهتان را بنویسید

مطالب مرتبط