مهندس نرم افزار در اسنپ اکسپرس و سابقا در زرینپال
انواع دیتا استراکچر در گولنگ golang
در برنامهنویسی، دیتا استراکچرها برای نمایش و سازماندهی دادهها به صورت منطقی و ساختاری استفاده میشه. این ساختارها میتوانند شامل یک یا چندین نوع داده باشن و به برنامهنویسان امکان مدیریت بهتر دادهها را بدهند.
- آرایهها (Arrays): دیتا استراکچری با طول ثابت که مجموعهای از عناصر از یک نوع داده را نگهداری میکند و داده های پشت سر هم قرار میگیرند.
var numbers [5]int
اسلایسها (Slices): دیتا استراکچری مشابه آرایه با این تفاوت که طول آن متغیر است.
var sliceOfNumbers []int
نقشهها (Maps): دیتا استراکچری که از یک مجموعه از جفتهای کلید و مقدار برای نگهداری دادهها استفاده میکنه.
var person = map[string]string{"name": "uncodev", "age": "two"}
ساختارها (Structs): دیتا استراکچری که یک گروه از فیلدها را با نوع مشخص نگه میداره.
type Person struct {
Name string
Age int
}
var john Person
- کانالها (Channels) : کانالها در گولانگ برای ارتباط و تبادل داده بین گوروتینها (goroutines) استفاده میشوند. گوروتینها از کانالها برای ارسال و دریافت داده به صورت همروند استفاده میکنند. کانالها میتوانند برای جلوگیری از مشکلات همروندی مانند deadlock استفاده شوند و اطمینان حاصل کنند که دادهها به ترتیب صحیح ارسال و دریافت میشوند.
ch := make(chan int)
اشارهگرها (Pointers) : اشارهگرها در برنامهنویسی یک نوع داده هستند که آدرس حافظه یک متغیر را نگهداری میکنند. به جای ذخیره مستقیم مقدار یک متغیر، اشارهگر به محلی در حافظه اشاره میکند که مقدار متغیر ذخیره شده است. این اشاره به امکان انجام عملیات مستقیم بر روی حافظه و به اشتراک گذاری دادهها بین توابع کمک میکند.
var x int = 42
var pointerToX *int = &x
fmt.Println("Value of x:", x)
fmt.Println("Address of x:", &x)
fmt.Println("Value through pointer:", *pointerToX)
لیستها (Lists): دیتا استراکچری که دادهها را به ترتیب خطی نگهداری میکنه. در زبان برنامهنویسی گولنگ مفهوم لیست (List) به صورت مستقیم به یک دیتا استراکچر خاص نمیپردازه. به جای لیستها، اغلب از دیتا استراکچرهای دیگر مانند آرایهها یا اسلایسها برای نگهداری دادهها استفاده میشه.
numbers := []int{1, 2, 3, 4, 5}
fmt.Println("List of numbers:", numbers)
صفها (Queues): دیتا استراکچری که عناصر را به ترتیب وارد شدن (enqueue) و خروجی شدن (dequeue) نگهداری میکنه.در زبان golang ، مفهوم صف (Queue) معمولاً با استفاده از اسلایسها (Slices) یا کانالها (Channels) پیادهسازی میشه.
پشتهها (Stacks): دیتا استراکچری که عناصر را به ترتیب وارد شدن (push) و خروجی شدن (pop) نگهداری میکند.در زبان برنامهنویسی گولنگ میتوانید مفهوم پشته (Stack) را با استفاده از اسلایسها (Slices) یا اشارهگرها (Pointers) پیادهسازی کنید. پشته یک دیتا استراکچر است که اعضای آن به صورت Last In, First Out (LIFO) مدیریت میشن، به این معنا که آخرین عنصری که اضافه میشود، اولین عنصری است که خارج میشود.
مطلبی دیگر از این انتشارات
گولنگ Golang مستقیماً بر روی سختافزار اجرا میشود
مطلبی دیگر از این انتشارات
الگوی Saga چیست؟
مطلبی دیگر از این انتشارات
اموزش مقدماتی تا پیشرفته گولنگ پروژه محور(قسمت اول)