دیتا تایپ ها در زبان گو | Basic Type  بیسیک دیتا تایپ ها در زبان گو

نویسنده

2023/11/14

تاریخ بروزرسانی

4.4 / 5. 7

امتیاز این مقاله

7 دقیقه

زمان مطالعه

ارسال در شبکه های مجازی

بیسیک دیتا تایپ ها در زبان گو
آنچه در این مقاله می‌خوانید :

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

معرفی دیتا تایپ ها

دیتا تایپ ها به صورت کلی دارای تنوع زیادی هستند از انواع دیتا تایپ بیسیک و ساده تا دیتا تایپ های کامپلکس ( complex data type ) ولی برای شروع بهتره که ابتدا با انواع دیتا ها یک آشنایی پیدا کنید.

دیتا تایپ ها در زبان گو نوع های مختلفی از داده ها را تعریف می کنند که می توانند در برنامه های نوشته شده به زبان گو استفاده شوند. از دیدگاه کلی دیتا تایپ ها در زبان گو عبارتند از:ذ

دیتا تایپ ها در زبان گو

  • Basic Type  ( نوع ساده ) 
  • Aggregate Type  ( نوع مرکب یا متشکل از چند قسمت )
  • Reference Type  ( نوع ارجاع کننده )
  • Interface Type  ( نوع رابط ) 

در این آموزش به تشریح Basic type  ها میپردازیم و در آموزش های بعدی تک تک دیتا تایپ هارا به شما آموزش میدهیم

Basic Types  ( انواع ساده ) 

بیسیک دیتا تایپ ها در زبان گو به سه دسته بندی کلی تقسیم میشوند :

  • Numbers ( اعدادی ) : دسته بندی numbers  شامل تمام اعداد میشوند مثلا : 12 یک داده از نوع نامبر است.
  • strings ( رشته ای ) : داده های رشته ای به منظور استفاده برای کلمات و جملات است مثلا : “علی” یک نوع داده از نوع رشته ای یا String  است.
  • booleans ( درست و غلط ) : داده های بولین داده هایی هستند که تنها شامل درست و غلط میشوند یا صفرن یا یک.

 

basic data typesهر کدوم ازین دسته بندی ها خودشون شامل چندین زیر دسته میشوند :

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 ] میشوند.

signed-unsigned data types

 

داده های 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 استفاده می‌شوند که در آموزش های بعدی بیشتر با آن‌ها آشنا خواهید شد.

سوالات متداول :
برای تعریف یک رشته در زبان گو می‌توان از دو روش استفاده کرد. یکی با استفاده از دابل کوتیشن [ ” ] و دیگری با استفاده از سینگل کوتیشن [ ‘ ] این کار را کرد
نوع‌های داده اولیه در زبان گو نوع‌های داده‌ای هستند که به صورت پیش‌فرض در زبان تعریف شده‌اند و می‌توانند مقادیر ساده مانند اعداد، رشته‌ها و مقادیر منطقی را نگهداری کنند. برخی از نوع‌های داده اولیه در زبان گو عبارتند از: int، float، bool، string و غیره. نوع‌های داده مرکب در زبان گو نوع‌های داده‌ای هستند که از ترکیب یک یا چند نوع داده اولیه یا مرکب ساخته شده‌اند و می‌توانند مقادیر پیچیده‌تری را نگهداری کنند. برخی از نوع‌های داده مرکب در زبان گو عبارتند از: array، slice، map، struct و غیره.
نوع‌های داده int و uint در زبان گو برای نمایش اعداد صحیح (اعدادی که بخش اعشاری ندارند) استفاده می‌شوند. تفاوت این دو نوع داده در این است که int می‌تواند مقادیر منفی و مثبت را نگهداری کند، اما uint فقط می‌تواند مقادیر مثبت را نگهداری کند. برای مثال، int می‌تواند مقادیر -10، 0 یا 10 را داشته باشد، اما uint فقط می‌تواند مقادیر 0 یا 10 را داشته باشد.
جواب: تفاوت این دو نوع داده در این است که float32 دارای دقت کمتر و حافظه کمتری نسبت به float64 است. float32 می‌تواند اعداد اعشاری را با 6 رقم اعشاری دقت نگهداری کند و 4 بایت از حافظه را اشغال می‌کند. float64 می‌تواند اعداد اعشاری را با 15 رقم اعشاری دقت نگهداری کند و 8 بایت از حافظه را اشغال می‌کند.

برچسب ها :

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *