متغیرها
تعریف متغیر با var و :=، قوانین نامگذاری، مقدار صفر (Zero Value) و ثابتها.
متغیر چیست؟
متغیر like یک جعبه برچسبدار است که داده را در حافظه نگه میدارد. در Go متغیرها ایستا-تایپ هستند: نوع هر متغیر در زمان کامپایل مشخص است و تغییر نمیکند.
سه روش تعریف متغیر
۱. با کلیدواژه var (نوع صریح)
var name string = "علی"
var age int = 25
var pi float64 = 3.14
۲. با var (نوع استنتاجی)
کامپایلر از مقدار، نوع را حدس میزند:
var name = "علی" ← string
var age = 25 ← int
var pi = 3.14 ← float64
۳. با عملگر := (فقط داخل تابع!)
محبوبترین و کوتاهترین روش:
name := "علی" ← string
age := 25 ← int
pi := 3.14 ← float64
عملگر
:= فقط داخل توابع قابل استفاده است! در سطح پکیج باید از var استفاده کنید.تعریف چند متغیر یکجا
// با var
var a, b, c int = 1, 2, 3
var (
name string = "علی"
age int = 25
active bool = true
)
// با :=
x, y := 10, 20
مقدار صفر (Zero Value)
اگر متغیری بدون مقدار اولیه تعریف شود، Go آن را با مقدار صفر آن نوع مقداردهی میکند:
| نوع | مقدار صفر |
|---|---|
int, float64 | 0 |
string | "" (رشته خالی) |
bool | false |
| اشارهگر، slice، map | nil |
var x int // 0
var s string // ""
var b bool // false
fmt.Println(x, s, b) ← 0 false
قوانین نامگذاری
- حروف، اعداد و
_مجاز است اما شروع با عدد ممنوع - حساس به حروف:
name≠Name - کلیدواژههای Go ممنوعند (
func,var, ...) - سبک استاندارد: camelCase برای متغیرهای محلی، PascalCase برای عمومی
- نامهای کوتاه برای دامنه کوچک، بلند برای دامنه بزرگ
ثابتها (Constants)
ثابتها مقدارشان در طول اجرا تغییر نمیکند:
const Pi = 3.14159
const SiteName = "لرنینگ سیتی"
const (
StatusOK = 200
StatusError = 500
)
ثابتها باید در زمان کامپایل قابل تعیین باشند — نمیتوانید نتیجه یک محاسبه runtime را ثابت کنید.
مثال کامل
این مبحث بخشی از دوره آموزش کامل گو است.