انواع داده

انواع داده پایه در Go: اعداد صحیح، اعشاری، رشته، بولی و انواع پیشرفته.

انواع داده در Go

Go یک زبان ایستا-تایپ است — یعنی نوع هر متغیر باید در زمان کامپایل مشخص باشد. انواع داده در Go به سه دسته تقسیم می‌شوند:

۱. انواع پایه (Basic)

دستهانواعمثال
اعداد صحیحint, int8, int16, int32, int6442
اعداد بدون علامتuint, uint8, uint16, uint32, uint6442
اعداد اعشاریfloat32, float643.14
اعداد مختلطcomplex64, complex1281+2i
رشتهstring"سلام"
بولیbooltrue / false
بایت و رونماbyte (=uint8), rune (=int32)\A\, گ

۲. انواع ترکیبی (Aggregate)

۳. انواع مرجع (Reference)

int در مقابل int8/int64

نوع int بسته به معماری سیستم ۳۲ یا ۶۴ بیتی است. برای اکثر کاربردها int کافی است:

var a int = 42        ← پیش‌فرض و توصیه‌شده
var b int8 = 127      ← حداکثر ۱۲۷!
var c int64 = 9e18    ← اعداد خیلی بزرگ
اگر عددی خارج از محدوده نوع قرار گیرد، سرریز (Overflow) رخ می‌دهد و نتیجه غلط می‌شود — بدون خطا!

رشته (string)

رشته در Go دنباله‌ای از بایت‌ها است (معمولاً UTF-8):

s := "سلام"
fmt.Println(len(s))        ← ۸ (هر حرف فارسی ۲ بایت)
fmt.Println(s[0])          ← کد بایت اول

بولی (bool)

isReady := true
isFinished := false

fmt.Println(isReady && !isFinished)  ← true

بررسی نوع با %T

با فعل قالب %T در Printf می‌توانید نوع هر مقدار را ببینید:

fmt.Printf("%T\n", 42)      ← int
fmt.Printf("%T\n", 3.14)    ← float64
fmt.Printf("%T\n", "سلام")  ← string
fmt.Printf("%T\n", true)    ← bool

این مبحث بخشی از دوره آموزش کامل گو است.

ابزارهای مرتبط