متغیرها (Variables)
«متغیر (Variable)» ظرفی برای نگه داشتن داده است. مثل جعبه ی برچسب دار. داخلش عدد، متن یا منطق می گذاریم و بعد استفاده می کنیم.
نوع های پایه متغیر
در Go نوع های مهم داریم. نوع یعنی شکلِ داده. چند نمونه رایج:
int: عدد صحیح؛ مثل 123 یا -123.float32: عدد اعشاری؛ مثل 19.99 یا -19.99.string: متن با ""؛ مثل "Hello World".bool: فقطtrueیاfalse.
جزئیات بیشتر را در نوع داده ها می بینی.
ایجاد متغیر با var
روش اول با var است. نام و نوع را مشخص کن. مقدار هم می توانی بدهی.
package main
import (
"fmt"
)
func main() {
var student1 string = "John"
var student2 string = "Jane"
var x int = 2
fmt.Println(student1)
fmt.Println(student2)
fmt.Println(x)
}
نکته: می توانی نوع یا مقدار یا هر دو را مشخص کنی.
ایجاد سریع با :=
روش دوم با := است. نوع از روی مقدار «استنتاج (Inferred)» می شود؛ یعنی کامپایلر حدس می زند.
package main
import (
"fmt"
)
func main() {
name := "Jane"
age := 15
passed := true
fmt.Println(name)
fmt.Println(age)
fmt.Println(passed)
}
هشدار: با := حتماً باید همان جا مقدار بدهی.
بدون مقدار اولیه؛ مقدار پیش فرض
اگر مقدار ندهی، Go مقدار پیش فرض می گذارد. برای string رشته خالی، برای int صفر، برای bool false.
package main
import (
"fmt"
)
func main() {
var a string
var b int
var c bool
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
}
مقداردهی بعد از اعلان
گاهی مقدار را بعداً می دانی. اول اعلام کن، سپس مقدار بده.
package main
import (
"fmt"
)
func main() {
var student1 string
student1 = "John"
fmt.Println(student1)
}
تفاوت های کلیدی: var و :=
varبیرون و داخل تابع مجاز است.:=فقط داخل تابع مجاز است.- با
varمی توانی جداگانه مقدار بدهی. - با
:=اعلان و مقداردهی هم زمان است.
package main
import (
"fmt"
)
var a int
var b int = 2
var c = 3
func main() {
a = 1
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
}
نمونه خطا با := بیرون از تابع
اگر بیرون از تابع از := استفاده کنی، خطا می گیری.
package main
import (
"fmt"
)
a := 1
func main() {
fmt.Println(a)
}
گام های تمرینی
- یک
intباvarبساز. - یک
stringبا:=بساز. - یکی را بدون مقدار اعلام کن و مقدارش را چاپ کن.
ادامه مسیر: برگرد به کامنت ها یا وارد نوع داده ها شو. همچنین به متغیرها دوباره سر بزن.
جمع بندی سریع
varهمه جا مجاز است.:=فقط داخل تابع است.- بی مقدار، مقدار پیش فرض می گیرد.
- نوع با مقدار می تواند استنتاج شود.
- هر متغیر نام واضح داشته باشد.