O‘zgaruvchilar va o‘zgarmaslar
O‘zgaruvchi — qiymatni nom bilan saqlash uchun ajratilgan xotira qismi. Dastur davomida bu qiymatni o‘qish va o‘zgartirish mumkin.
Masalan, ob-havo dasturi shahar nomi va haroratni saqlashi kerak. shahar hamda harorat kabi nomlar koddagi qiymat nima anglatishini ko‘rsatadi.
O‘zgaruvchini e’lon qilish
O‘zgaruvchini ishlatishdan oldin uni e’lon qilish kerak. E’lon o‘zgaruvchining nomi va qanday turdagi qiymat saqlashini bildiradi:
Bu qatorda:
var— o‘zgaruvchi e’lon qiluvchi kalit so‘z;yosh— o‘zgaruvchining nomi;int— butun son turi;25— boshlang‘ich qiymat.
To‘liq dasturda ko‘ramiz:
| main.go | |
|---|---|
Natija:
fmt.Println()ga vergul bilan bir nechta qiymat berish mumkin. Ularni natijada bo‘sh joy bilan ajratib chiqaradi.
Qiymatni o‘zgartirish
O‘zgaruvchiga = operatori orqali yangi qiymat beriladi:
Natijada 15 chiqadi. Yangi qiymat oldingi qiymatning o‘rnini egallaydi.
= yangi o‘zgaruvchi yaratmaydi. U avval e’lon qilingan o‘zgaruvchiga qiymat beradi. Qiymat o‘zgaruvchining turiga mos bo‘lishi kerak:
Turini Go’ga aniqlatish
Boshlang‘ich qiymat mavjud bo‘lsa, tur nomini yozmaslik mumkin. Go qiymatga qarab turni aniqlaydi:
Bu tur chiqarish (type inference) deyiladi. Tur kodi yozilmagan bo‘lsa ham, o‘zgaruvchining aniq turi mavjud va keyinchalik o‘z-o‘zidan o‘zgarmaydi.
Qisqa e’lon: :=
Funksiya ichida o‘zgaruvchini := yordamida qisqa e’lon qilish mumkin:
| main.go | |
|---|---|
ism := "Aziza" qatori o‘zgaruvchini yaratadi va unga boshlang‘ich qiymat beradi. := faqat funksiya ichida ishlatiladi.
= va := bir xil emas:
son := 10 // yangi o‘zgaruvchi e’lon qilindi
son = 20 // mavjud o‘zgaruvchining qiymati almashtirildi
Yangi boshlovchilar uchun funksiya ichida boshlang‘ich qiymati bor o‘zgaruvchilarga := yozish qulay. Turini alohida ko‘rsatish kerak bo‘lsa yoki o‘zgaruvchi keyin qiymat olsa, var ishlatiladi.
Boshlang‘ich qiymatsiz o‘zgaruvchi
var bilan qiymat bermasdan ham o‘zgaruvchi e’lon qilish mumkin:
Bunday o‘zgaruvchi bo‘sh yoki noma’lum holatda qolmaydi. Go unga turining nol qiymatini (zero value) beradi:
| Tur | Nol qiymat |
|---|---|
| son turlari | 0 |
string |
"" — bo‘sh matn |
bool |
false |
| main.go | |
|---|---|
Natija:
Bu yerda Printf() natijani berilgan qolip bo‘yicha chiqaradi. %d butun son, %q qo‘shtirnoq ichidagi matn, %t esa bool qiymat uchun ishlatilgan.
Bir nechta o‘zgaruvchini e’lon qilish
Bir xil turdagi o‘zgaruvchilarni bitta qatorda e’lon qilish mumkin:
Bir nechta qisqa e’lon ham mumkin:
Qiymatlar chapdagi nomlarga o‘z tartibida beriladi. Kodni o‘qish qiyinlashsa, e’lonlarni alohida qatorlarda yozgan ma’qul.
O‘zgaruvchining ko‘rinish sohasi
O‘zgaruvchini kodning istalgan joyida ishlatib bo‘lmaydi. U e’lon qilingan blok ichida ko‘rinadi. Blok { va } bilan chegaralanadi:
| main.go | |
|---|---|
shahar main() funksiyasining ichida e’lon qilingan, shuning uchun ichki if blokida ham ko‘rinadi. harorat esa faqat if blokining ichida mavjud.
O‘zgaruvchi nomlarini tanlash
O‘zgaruvchi nomi uning vazifasini anglatishi kerak. x o‘rniga yosh, narx yoki foydalanuvchiSoni kabi nomlar kodni tushunarli qiladi.
Go identifikatorlari uchun asosiy qoidalar:
- nom harf yoki
_belgisi bilan boshlanadi; - keyingi belgilarda harf va raqam ishlatish mumkin;
- probel va
-belgisi ishlatilmaydi; var,func,packagekabi kalit so‘zlar nom bo‘la olmaydi;- katta va kichik harflar farqlanadi:
yoshvaYoshboshqa-boshqa nomlar.
Bir nechta so‘zdan iborat nomlar odatda foydalanuvchiSoni kabi yoziladi. Juda qisqa yoki ma’nosiz nomlardan qoching.
Ishlatilmagan o‘zgaruvchi
Go funksiya ichida e’lon qilingan, ammo ishlatilmagan o‘zgaruvchini xato deb hisoblaydi:
Bu kod uchun kompilyator declared and not used mazmunidagi xabar qaytaradi. O‘zgaruvchini ishlating yoki kerak bo‘lmasa olib tashlang. Bu qoida kodda ortiqcha qismlar qolishining oldini oladi.
O‘zgarmaslar: const
O‘zgarmas (constant) — dastur davomida almashtirib bo‘lmaydigan nomlangan qiymat. U const kalit so‘zi bilan e’lon qilinadi:
| main.go | |
|---|---|
O‘zgarmasga keyin yangi qiymat berib bo‘lmaydi:
O‘zgarmas son, matn yoki mantiqiy qiymat bo‘lishi mumkin. Uning qiymati kompilyatsiya vaqtida aniqlanishi kerak. Funksiya natijasini o‘zgarmasga berib bo‘lmaydi:
Info
Go’da o‘zgarmaslarni faqat katta harflarda yozish shart emas. Ularni boshqa nomlar kabi qisqa va mazmunli nomlang.
Xulosa
var o‘zgaruvchi e’lon qiladi, := esa funksiya ichida qisqa e’lon uchun ishlatiladi. = mavjud o‘zgaruvchining qiymatini almashtiradi. Boshlang‘ich qiymat berilmasa, Go turga mos nol qiymat beradi. O‘zgarmaydigan qiymatlar const bilan e’lon qilinadi.
Keyingi darsda Go’dagi asosiy ma’lumot turlari va ular bilan bajariladigan amallarni ko‘rib chiqamiz.