متغیرها و نوع دادهها پایه و اساس هر زبان برنامهنویسی هستند و نقش مهمی در کنترل و مدیریت دادهها دارند. گولنگ (Go) به عنوان یک زبان برنامهنویسی مدرن، از متغیرها و انواع دادههای قوی و مشخصی بهره میبرد که به برنامهنویسان کمک میکند تا کدهایی تمیز، بهینه و قابل اعتماد بنویسند. در این مقاله، به طور کامل به متغیرها و نوع دادهها در گولنگ خواهیم پرداخت و اصول آنها را بررسی خواهیم کرد.
مقدمه
یکی از اولین اصولی که در هنگام یادگیری یک زبان برنامهنویسی باید یاد بگیریم، مفهوم متغیرها و نوع دادههاست. متغیرها، دادهها را نگه میدارند و نوع داده مشخص میکند که آن متغیر چه نوع دادهای را میتواند ذخیره کند. در گولنگ، تمام متغیرها باید نوع داده خاصی داشته باشند و از تایپ استاتیک استفاده میکند، به این معنا که نوع داده در زمان کامپایل مشخص میشود.
تعریف متغیرها در گولنگ
متغیرها در گولنگ برای نگهداری دادهها استفاده میشوند و هر متغیر باید قبل از استفاده تعریف شود. گولنگ از تایپ ایستا (Static Typing) پشتیبانی میکند که به معنای این است که نوع داده هر متغیر در زمان اعلان آن باید مشخص شود.
نحوه اعلان متغیرها
در گولنگ، اعلان متغیرها با استفاده از کلمه کلیدی var صورت میگیرد. به عنوان مثال:
var name string = "Ali"
این کد یک متغیر با نام name از نوع رشتهای (string) تعریف میکند و مقدار اولیه آن "Ali" است.
قوانین نامگذاری متغیرها
برای نامگذاری متغیرها در گولنگ، باید قوانین خاصی رعایت شود. نام متغیر باید با یک حرف یا علامت زیر خط (_) شروع شود و نمیتواند با عدد آغاز شود. همچنین، نام متغیرها باید معنیدار و خوانا باشند تا درک کد راحتتر شود.
انواع دادهها در گولنگ
گولنگ از انواع دادههای متعددی پشتیبانی میکند که هر کدام برای ذخیره نوع خاصی از دادهها به کار میروند. این دادهها شامل اعداد صحیح، اعداد اعشاری، رشتهها و مقادیر بولی هستند.
اعداد صحیح (Integers)
گولنگ از چندین نوع داده عدد صحیح پشتیبانی میکند که شامل int, int8, int16, int32, int64 میشود. این نوع دادهها برای ذخیره اعداد بدون اعشار استفاده میشوند و بسته به نیاز، میتوان نوع مناسب را انتخاب کرد.
اعداد اعشاری (Floats)
برای ذخیره اعداد اعشاری (اعدادی که دارای قسمت اعشاری هستند)، از دادههای float32 و float64 استفاده میشود. این نوع دادهها برای محاسبات دقیق ریاضی مفید هستند.
رشتهها (Strings)
رشتهها برای نگهداری مجموعهای از کاراکترها استفاده میشوند. در گولنگ، رشتهها به عنوان توالیای از بایتها ذخیره میشوند و امکان تغییرپذیری ندارند (Immutable).
مقادیر بولی (Booleans)
نوع داده بولی در گولنگ دو مقدار true یا false را نگه میدارد و بیشتر برای شرایط منطقی و تصمیمگیریها استفاده میشود.
تخصیص اولیه به متغیرها
در گولنگ میتوان در زمان تعریف متغیرها، به آنها مقدار اولیه داد. این کار با استفاده از علامت = انجام میشود.
استفاده از var
همانطور که در مثال بالا دیدیم، با استفاده از var میتوان به متغیرها در لحظه تعریف مقدار داد.
تخصیص خودکار با :=
یکی از ویژگیهای مفید گولنگ، امکان تخصیص خودکار نوع داده با استفاده از عملگر := است. به این صورت که بدون نیاز به ذکر نوع داده، گولنگ نوع متغیر را از روی مقدار آن تشخیص میدهد:
age := 30
در این مثال، نوع داده age به صورت خودکار به عدد صحیح (int) تشخیص داده میشود.
تفاوت بین متغیرهای محلی و سراسری
متغیرها میتوانند در گولنگ به دو دسته محلی (Local) و سراسری (Global) تقسیم شوند که هر کدام محدوده استفاده و رفتار خاص خود را دارند.
متغیرهای محلی
متغیرهای محلی تنها در بلوک کدی که در آن تعریف شدهاند قابل دسترسی هستند و خارج از آن بلوک نمیتوان از آنها استفاده کرد. به طور مثال، متغیرهای تعریف شده در داخل یک تابع، تنها در همان تابع معتبر هستند.
متغیرهای سراسری
متغیرهای سراسری در گولنگ خارج از هر تابعی تعریف میشوند و در تمام قسمتهای برنامه قابل دسترسی هستند. این متغیرها در کل برنامه وجود دارند و میتوانند در هر جایی از کد به آنها دسترسی داشت.
ثابتها در گولنگ
گولنگ از ثابتها پشتیبانی میکند که مشابه متغیرها هستند، اما پس از مقداردهی نمیتوان مقدار آنها را تغییر داد.
تعریف ثابتها
برای تعریف یک ثابت، از کلمه کلیدی const استفاده میشود:
const pi = 3.14
در این مثال، ثابت pi مقدار 3.14 را نگه میدارد و نمیتوان آن را در طول برنامه تغییر داد.
تفاوت ثابتها با متغیرها
برخلاف متغیرها که میتوانند مقادیر خود را تغییر دهند، ثابتها فقط یک بار مقداردهی میشوند و پس از آن تغییر ناپذیرند.
نوع دادههای پیچیده در گولنگ
گولنگ از نوع دادههای پیچیدهای مانند آرایهها و ساختارها (Structs) نیز پشتیبانی میکند که برای ذخیره دادههای بیشتر و پیچیدهتر به کار میروند.
آرایهها
آرایهها مجموعهای از عناصر هم نوع هستند که در یک مکان حافظه قرار میگیرند. هر عنصر آرایه با استفاده از اندیس خود قابل دسترسی است.
ساختارها (Structs)
ساختارها نوع دادهای پیچیدهتر از آرایهها هستند که میتوانند دادههای مختلفی از انواع گوناگون را نگه دارند. با استفاده از ساختارها میتوان دادههایی که به هم مرتبط هستند را در یک واحد تعریف کرد.
تبدیل نوع دادهها
تبدیل نوع دادهها در گولنگ میتواند به دو صورت ضمنی (Implicit) و صریح (Explicit) انجام شود.
تبدیل صریح نوع داده
در گولنگ تبدیل نوع دادهها به صورت صریح انجام میشود و برنامهنویس باید به وضوح نوع جدید داده را مشخص کند.
تبدیل ضمنی نوع داده
گولنگ از تبدیل ضمنی پشتیبانی نمیکند و تمام تبدیلها باید به صورت صریح انجام شوند.