Saeed Heydari
Saeed Heydari
خواندن ۳ دقیقه·۲ سال پیش

آموزش golang - قدم ششم: انواع داده

سلام دوستان، این قسمت می خوام درمورد انواع داده تو go lang توضیح بدم.

همون طور که تو قسمت های قبلی گفتم go lang یه زبان برنامه نویسی static type هست. برای همین باید به نوع داده های موجود و کاربرد هر کدوم مسلط باشیم.

انواع داده:

  • نوع داده int:
    برای مقادیر عددی، مقدار پیشفرض صفر و مقدار حجم از حافظه که استفاده می کنه بسته به ۳۲ یا ۶۴ بیتی بودن سیستم عامل ۴ یا ۸ بایت هست.
  • نوع داده int8:
    برای مقادیر عددی، مقدار پیشفرض صفر و برای اعداد بین ۱۲۷- تا ۱۲۷ و مقدار حجم از حافظه که استفاده می کنه ۱ بایت هست.
  • نوع داده int16:
    برای مقادیر عددی، مقدار پیشفرض صفر و برای اعداد بین ۳۲۷۶۸- تا ۳۲۷۶۷ و مقدار حجم از حافظه که استفاده می کنه ۱ بایت هست.
  • نوع داده int32:
    برای مقادیر عددی، مقدار پیشفرض صفر و برای اعداد بین ۲۱۴۷۴۸۳۶۴۸- تا ۲۱۴۷۴۸۳۶۴۷ و مقدار حجم از حافظه که استفاده می کنه ۱ بایت هست.
  • نوع داده int64:
    برای مقادیر عددی، مقدار پیشفرض صفر و برای اعداد بین ۹۲۲۳۳۷۲۰۳۶۸۵۴۷۷۵۸۰۸- تا ۹۲۲۳۳۷۲۰۳۶۸۵۴۷۷۵۸۰۷ و مقدار حجم از حافظه که استفاده می کنه ۱ بایت هست.
  • نوع داده uint:
    برای مقادیر عددی نامنفی (صفر و مثبت)، مقدار پیشفرض صفر و مقدار حجم از حافظه که استفاده می کنه بسته به ۳۲ یا ۶۴ بیتی بودن سیستم عامل ۴ یا ۸ بایت هست.
  • نوع داده uint8:
    برای مقادیر عددی نامنفی، مقدار پیشفرض صفر و برای اعداد بین ۰ تا ۲۵۶ و مقدار حجم از حافظه که استفاده می کنه ۱ بایت هست.
  • نوع داده uint16:
    برای مقادیر عددی نامنفی، مقدار پیشفرض صفر و برای اعداد بین ۰ تا ۶۵۵۳۵ و مقدار حجم از حافظه که استفاده می کنه ۲ بایت هست.
  • نوع داده uint32:
    برای مقادیر عددی نامنفی، مقدار پیشفرض صفر و برای اعداد بین ۰ تا ۶۲۹۴۹۶۷۲۹۵ و مقدار حجم از حافظه که استفاده می کنه ۴ بایت هست.
  • نوع داده uint64:
    برای مقادیر عددی نامنفی، مقدار پیشفرض صفر و برای اعداد بین ۰ تا ۱۸۴۴۶۷۴۴۰۷۳۷۰۹۵۵۱۶۱۵ و مقدار حجم از حافظه که استفاده می کنه ۸ بایت هست.
  • نوع داده uintptr:
    برای مقادیر عددی نامنفی خیلی بزرگ، مقدار پیشفرض صفر و مقدار حجم از حافظه که استفاده می کنه ۸ بایت هست.
  • نوع داده float32:
    برای مقادیر عددی، مقدار پیشفرض صفر و برای اعداد IEEE-754 و مقدار حجم از حافظه که استفاده می کنه ۴ بایت هست.
  • نوع داده float64:
    برای مقادیر عددی، مقدار پیشفرض صفر و برای اعداد IEEE-754 و مقدار حجم از حافظه که استفاده می کنه 8 بایت هست.
  • نوع داده complex64:
    برای مقادیر عددی مختلط و مقدار حجم از حافظه که استفاده می کنه ۸ بایت هست.
  • نوع داده complex128:
    برای مقادیر عددی مختلط و مقدار حجم از حافظه که استفاده می کنه ۱۶ بایت هست.
  • نوع داده bool:
    برای مقادیر منطقی (صحیح و غلط)، مقدار پیشفرض false و مقادیر قابل قبول true, false و مقدار حجم از حافظه که استفاده می کنه ۱ بایت هست.
  • نوع داده string:
    برای مقادیر رشته ای (مثل اسم و ...)، مقدار پیشفرض "" (رشته ی خالی) و مقدار حجم از حافظه که استفاده می کنه ۸ بایت هست.
  • نوع داده byte:
    این نوع داده نام مستعار برای uint8 می باشد.
  • نوع داده rune:
    این نوع داده نام مستعار برای int32 می باشد.

سفارشی سازی نوع داده ها

  • نام گذاری جدید:
    برای نوع داده رشته‌ای، عددی و بول، می‌توان نام سفارشی جدید انتخاب و در پروژه استفاده کرد:
/* type alias */ // boolean and bool define same type type boolean = bool // content and string define same type type content = string // UI8 and uint8 define same type type UI8 = uint8

ایجاد نوع داده معادل:
برای نوع داده های موجود می توان یک نمونه جدید ایجاد کرد:

type state bool type ID uint8
https://virgool.io/@saeedheydari/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D9%82%D8%AF%D9%85%D8%A7%D8%AA%DB%8C-golang-%D9%82%D8%AF%D9%85-%D8%B5%D9%81%D8%B1-ufv22zb4j3bq
https://virgool.io/@saeedheydari/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D9%82%D8%AF%D9%85%D8%A7%D8%AA%DB%8C-golang-%D8%A8%D8%AE%D8%B4-%D8%AF%D9%88%D9%85-wyvs1idjyan2
https://virgool.io/@saeedheydari/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-golang-%D9%82%D8%AF%D9%85-%D8%B3%D9%88%D9%85-e3mxmjr1mp74
https://virgool.io/@saeedheydari/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-golang-%D9%82%D8%AF%D9%85-%DA%86%D9%87%D8%A7%D8%B1%D9%85-ydltpxgtgdlj
https://virgool.io/@saeedheydari/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-golang-%D9%82%D8%AF%D9%85-%D9%BE%D9%86%D8%AC%D9%85-regehw9odr8y
https://virgool.io/@saeedheydari/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-golang-%D9%82%D8%AF%D9%85-%D8%B4%D8%B4%D9%85-k6cpaqgybxz2
https://virgool.io/@saeedheydari/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-golang-%D9%82%D8%AF%D9%85-%D9%87%D9%81%D8%AA%D9%85-jf9cn4h6fgri
https://virgool.io/@saeedheydari/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-golang-%D9%82%D8%AF%D9%85-%D9%87%D9%81%D8%AA%D9%85-%D9%85%D8%AA%D8%BA%DB%8C%D8%B1%D9%87%D8%A7-%D9%88-constant-oqvlbp5q2hg6
https://virgool.io/@saeedheydari/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-golang-%D9%82%D8%AF%D9%85-%D9%86%D9%87%D9%85-%D8%AA%D8%A7%D8%A8%D8%B9-nat6a2yfyqe3


آموزشgogolangگو
من سعید حیدری،برنامه نویس و طراح وب و از علاقه مندان دنیای گنو/لینوکس هستم. بک اند با لاراول وGolang و فرانت اند با vuejs, nuxtjs کار می کنم. همچنین به بلاکچین، هوش مصنوعی و اینترنت اشیا علاقه مندم.
شاید از این پست‌ها خوشتان بیاید