Go o‘zgaruvchilar
O‘zgaruvchilar — ma’lumot qiymatlarini saqlash uchun konteynerlar.
Go o‘zgaruvchi tiplari
Go tilida o‘zgaruvchilarning turli tiplari mavjud, masalan:
int— 123 yoki -123 kabi butun sonlarni (integer) saqlaydifloat32— 19.99 yoki -19.99 kabi kasr qismli (suzuvchi nuqtali) sonlarni saqlaydistring— "Hello World" kabi matnni saqlaydi. String qiymatlar qo‘sh tirnoq ichiga olinadibool— ikki holatdan birini qabul qiladigan qiymatlarni saqlaydi: true yoki false
O‘zgaruvchilarning turli tiplari haqida batafsil Go ma’lumot tiplari bobida tushuntiriladi.
O‘zgaruvchilarni e’lon qilish (yaratish)
Go tilida o‘zgaruvchini e’lon qilishning ikki usuli bor:
1. var kalit so‘zi yordamida:
var kalit so‘zidan keyin o‘zgaruvchi nomi va tipini yozing:
Sintaksis
var variablename type = value
Eslatma: Har doim type yoki valueni (yoki ikkalasini ham) ko‘rsatishingiz shart.
2. := belgisi yordamida:
:= belgisidan keyin o‘zgaruvchi qiymatini yozing:
Sintaksis
variablename := value
Eslatma: Bu holda o‘zgaruvchining tipi qiymatdan avtomatik aniqlanadi (ya’ni kompilyator o‘zgaruvchi tipini uning qiymatiga qarab o‘zi belgilaydi).
Eslatma: := yordamida o‘zgaruvchini unga qiymat bermasdan e’lon qilib bo‘lmaydi.
Boshlang‘ich qiymatli o‘zgaruvchini e’lon qilish
Agar o‘zgaruvchining qiymati boshidanoq ma’lum bo‘lsa, o‘zgaruvchini e’lon qilib, unga bitta qatorda qiymat berishingiz mumkin:
Misol
package main
import "fmt"
func main() {
var student1 string = "John" //type is string
var student2 = "Jane" //type is inferred
x := 2 //type is inferred
fmt.Println(student1)
fmt.Println(student2)
fmt.Println(x)
}
O‘zingiz sinab ko‘ring »
Eslatma: student2 va x o‘zgaruvchilarining tiplari ularning qiymatlaridan avtomatik aniqlanadi.
Boshlang‘ich qiymatsiz o‘zgaruvchini e’lon qilish
Go tilida barcha o‘zgaruvchilar initsializatsiya qilinadi. Shuning uchun o‘zgaruvchini boshlang‘ich qiymatsiz e’lon qilsangiz, uning qiymati o‘z tipining standart (default) qiymatiga teng bo‘ladi:
Misol
package main
import "fmt"
func main() {
var a string
var b int
var c bool
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
}
O‘zingiz sinab ko‘ring »
Misol izohi
Ushbu misolda 3 ta o‘zgaruvchi bor:
abc
Bu o‘zgaruvchilar e’lon qilingan, ammo ularga boshlang‘ich qiymat berilmagan.
Kodni ishga tushirib, ular allaqachon o‘z tiplariga mos standart qiymatlarga ega ekanini ko‘ramiz:
aqiymati:""bqiymati:0cqiymati:false
E’lon qilingandan keyin qiymat berish
O‘zgaruvchi e’lon qilingandan keyin unga qiymat berish mumkin. Bu qiymat oldindan ma’lum bo‘lmagan hollarda foydali.
Misol
package main
import "fmt"
func main() {
var student1 string
student1 = "John"
fmt.Println(student1)
}
O‘zingiz sinab ko‘ring »
Eslatma: ":=" yordamida o‘zgaruvchini unga qiymat bermasdan e’lon qilib bo‘lmaydi.
var va := o‘rtasidagi farq
var va := o‘rtasida ba’zi kichik farqlar bor:
| var | := |
|---|---|
| Funksiyalarning ichida ham, tashqarisida ham ishlatilishi mumkin | Faqat funksiyalar ichida ishlatilishi mumkin |
| O‘zgaruvchini e’lon qilish va unga qiymat berish alohida bajarilishi mumkin | O‘zgaruvchini e’lon qilish va unga qiymat berish alohida bajarilishi mumkin emas (bitta qatorda bajarilishi shart) |
Misol
Ushbu misolda o‘zgaruvchilar funksiyadan tashqarida var kalit so‘zi bilan e’lon qilingan:
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)
}
O‘zingiz sinab ko‘ring »
Misol
:= funksiyadan tashqarida ishlatilgani uchun dasturni ishga tushirish xatoga olib keladi.
package main
import "fmt"
a := 1
func main() {
fmt.Println(a)
}
Natija:
./prog.go:5:1: syntax error: non-declaration statement outside function body
Go mashqlari
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
