قبل از شروع آموزش و صحبت راجب بیسیک دیتا تایپ ها در زبان گو (زبان برنامه نویسی Go ) باید گفت که اصلا دیتا تایپ چیه، اگر به صورت کلمه کلمه بخوایم معنی کنیم دیتا که به معنی داده و اطلاعات هست و تایپ هم یعنی نوع اون داده و دیتا ها.
معرفی دیتا تایپ ها
دیتا تایپ ها به صورت کلی دارای تنوع زیادی هستند از انواع دیتا تایپ بیسیک و ساده تا دیتا تایپ های کامپلکس ( complex data type ) ولی برای شروع بهتره که ابتدا با انواع دیتا ها یک آشنایی پیدا کنید.
دیتا تایپ ها در زبان گو نوع های مختلفی از داده ها را تعریف می کنند که می توانند در برنامه های نوشته شده به زبان گو استفاده شوند. از دیدگاه کلی دیتا تایپ ها در زبان گو عبارتند از:ذ

- Basic Type ( نوع ساده )
- Aggregate Type ( نوع مرکب یا متشکل از چند قسمت )
- Reference Type ( نوع ارجاع کننده )
- Interface Type ( نوع رابط )
در این آموزش به تشریح Basic type ها میپردازیم و در آموزش های بعدی تک تک دیتا تایپ هارا به شما آموزش میدهیم
Basic Types ( انواع ساده )
بیسیک دیتا تایپ ها در زبان گو به سه دسته بندی کلی تقسیم میشوند :
- Numbers ( اعدادی ) : دسته بندی numbers شامل تمام اعداد میشوند مثلا : 12 یک داده از نوع نامبر است.
- strings ( رشته ای ) : داده های رشته ای به منظور استفاده برای کلمات و جملات است مثلا : “علی” یک نوع داده از نوع رشته ای یا String است.
- booleans ( درست و غلط ) : داده های بولین داده هایی هستند که تنها شامل درست و غلط میشوند یا صفرن یا یک.
هر کدوم ازین دسته بندی ها خودشون شامل چندین زیر دسته میشوند :
Numbers ( اعدادی )
داده های عددی در زبان برنامه نویسی گو ( go lang ) به نام Int شناخته میشوند. که مخفف کلمه ی integer است به معنی اعداد صحیح.
باز هم داده های Integer به دو دسته بندی کلی signed وunsigned تقسیم میشوند :
داده های signed integer شامل
int :
نوع اول و پایه داده های عددی است که بر اساس سیستم عامل شما خانه های حافظه رو پر میکند مثلا اگر سیستم شما 32 بیت باشه این داده هم به صورت پیش فرض از نوع int32 میشه و اگر سیستم شما 64 بیت باشه مقدار پیش فرض این نوع داده به Int64 تغییر پیدا میکند.
int8 :
نوع پایه ی داده های عددی Int8 است که در حافظه یک بایت رو اشغال میکند و از رنج [ -128 تا 128 ] رو شامل میشوند و میتوانید اعداد این بین رو با این نوع داده در برنامه خود ذخیره کنید.
int16 :
نوع دوم داده های عددی int16 هست که در حافظه 2 بایت رو اشغال میکند و شامل اعداد از [ -32768 تا 32767 ] هستند و میتوانید اعدادی که در این رنج قرار دارند رو با نوع int16 ذخیره کنید.
int32 :
نوع سوم داده های عددی در زبان برنامه نویسی گو Int32 است که در حافظه 4 بایت رو اشغال میکنند و شامل اعدادی بین [ 2147483648- تا 2147483647 ] هستند و شما میتوانید اعداد داخل این بازه را در نوع داده ای int32 ذخیره کنید.
int64 :
داده های از نوع int64 بزرگ ترین نوع داده ای int هستند که در حافظه 8 بایت رو اشغال میکند و شامل اعدادی بین [ 9223372036854775808- تا 9223372036854775807 ] میشوند.

داده های unsigned integer نیز شامل
uint :
نوع اول و پایه داده های عددی است که بر اساس نوع سیستم عامل شما خانه های حافظه رو پر میکند مثلا اگر سیستم شما 32 بیت باشه این داده هم به صورت پیش فرض از نوع int32 میشه و اگر سیستم شما 64 بیت باشه مقدار پیش فرض این نوع داده به Int64 تغییر پیدا میکند.
uint8 :
نوع پایه ی داده های عددی uint8 است که در حافظه یک بایت رو اشغال میکند و از رنج [ 0 تا 255 ] رو شامل میشوند و میتوانید اعداد این بین رو با این نوع داده در برنامه خود ذخیره کنید.
uint16 :
نوع دوم داده های عددی uint16 هست که در حافظه 2 بایت رو اشغال میکند و شامل اعداد از [ 0 تا 65535 ] هستند و میتوانید اعدادی که در این رنج قرار دارند رو با نوع uint16 ذخیره کنید.
uint32 :
نوع سوم داده های عددی در زبان برنامه نویسی گو uint32 است که در حافظه 4 بایت رو اشغال میکنند و شامل اعدادی بین [ 0 تا 4294967295 ] هستند و شما میتوانید اعداد داخل این بازه را در نوع داده ای uint32 ذخیره کنید.
uint64 :
داده های از نوع uint64 بزرگ ترین نوع داده ای uint هستند که در حافظه 8 بایت رو اشغال میکند و شامل اعدادی بین [ 0 تا 18446744073709551615 ] میشوند.
داده های Float از نوع بیسیک دیتا تایپ ها در زبان گو
نوع دیگر از داده های عددی داده های فلوت ( Float ) یا اعشاری هستند که خود شامل دو نوع داده ای float32 و float64 میشوند.
دیتا تایپ های از نوع فلوت شامل اعداد اعشاری میشوند و float32 شامل 4 بایت در حافظه و float64 شامل 8 بایت از حافظه میشوند.
برای مثال: 35.3، -2.34 یا 3597.34987 اعداد اعشاری هستند که داخل دیتا تایپ فلوت ذخیره میشوند .
برای مقداردهی اولیه به این دو نوع میتوان از عدد اعشاری مستقیما استفاده کرد. برای مثال:
var x float64 = 123.78 // با استفاده از عدد اعشار
نکته: نوع پیشفرض برای float، float64 است. اگر نوع را مشخص نکنید، نوع float64 خواهد بود.
بر روی اعداد اعشاری میتوان عملیاتهای ریاضی معمولی مانند جمع، تفریق، ضرب و تقسیم انجام داد. برای مثال:
var x float64 = 2.34
var y float64 = 4.56
var z float64 = x + y // جمع
var w float64 = x - y // تفریق
var u float64 = x * y // ضرب
var v float64 = x / y // تقسیم
کدام نوع float را برای اعداد اعشاری خودمون انتخاب کنیم؟
نوع float را بر اساس مقداری که متغیر باید ذخیره کند، انتخاب میکنیم. float32 میتواند مقادیر کوچکتری را نسبت به float64 ذخیره کند. برای مثال، اگر مقدار 3.4e+39 را به یک متغیر از نوع float32 بدهیم، خطا خواهیم گرفت چون این مقدار بیش از حد مجاز برای float32 است.
complex number ( اعداد مختلط )
دیتا تایپ های complex number در زبان گو دو نوع هستند: complex64 و complex128. این دو نوع برای نمایش اعداد مختلط (اعدادی که بخش موهومی دارند) استفاده میشوند. برای مقداردهی اولیه به این دو نوع میتوان از دو روش استفاده کرد که در آینده با این روش ها بیشتر آشنا میشویم.
strings ( رشته ای )
داده های از نوع استرینگ یا رشته ای داده هایی هستند که معمولا به صورت کلمات ، لغات و جملات در برنامه های خودمون استفاده میکنیم و باید داخل دابل کوتیشن [ ” ] یا داخل سینگل کوتیشن [ ‘ ] باشند .
به عنوان مثال :
" علی در حال آموزش زبان برنامه نویسی گو است "
' علی در حال آموزش زبان برنامه نویسی گو است '
یک نوع ازدیتا تایپ در زبان گو استرینگ ها اند که داخل دابل کوتیشن و سینگل کوتیشن استفاده شده اند.
و اصولا تفاوتی با یکدیگر ندارند مگر در موارد خاص که در آموزش های آینده به آنها میپردازیم.
Boolean ( درست و غلط )
دیتا تایپ های boolean در زبان گو یک نوع داده ساده هستند که فقط میتوانند دو مقدار true یا false را داشته باشند. این نوع داده برای بیان وضعیتهای منطقی مانند بله یا خیر، درست یا غلط، روشن یا خاموش و غیره استفاده میشوند.
برای تعریف یک متغیر از نوع boolean میتوان از کلمه کلیدی bool استفاده کرد. مقدار پیشفرض یک متغیر از نوع بولین false است برای مثال:
var b bool // مقدار پیشفرض false
var c bool = true // مقداردهی اولیه با true
برای مقداردهی اولیه به یک متغیر از نوع boolean میتوان از عبارات منطقی استفاده کرد. برای مثال:
var x int = 10
var y int = 20
var z bool = x > y // مقداردهی اولیه با عبارت منطقی
بر روی متغیرهای از نوع boolean میتوان عملگرهای منطقی مانند && (و)، || (یا) و ! (نقیض) را اعمال کرد3. برای مثال:
var a bool = true
var b bool = false
var c bool = a && b // عملگر و
var d bool = a || b // عملگر یا
var e bool = !a // عملگر نقیض
مقادیر boolean بیشتر برای شرطهای منطقی مانند if، switch و for استفاده میشوند که در آموزش های بعدی بیشتر با آنها آشنا خواهید شد.