O'zgaruvchilar va konstantalar
Dasturlashda o'zgaruvchi — ma'lumotlarni saqlash uchun ishlatiladigan konteynerdir. Go dasturlash tilida o'zgaruvchini quyidagicha e'lon qilishimiz mumkin:
var number int
Bu yerda:
number — o'zgaruvchining nomivar — o'zgaruvchini e'lon qilish uchun ishlatiladigan kalit so'zint — o'zgaruvchiga biriktirilgan ma'lumot turi[!NOTE] Go tilida har bir o'zgaruvchi qat'iy ma'lumot turiga ega bo'ladi. Ma'lumot turi o'zgaruvchida qanday turdagi qiymat saqlanishi mumkinligini belgilaydi. Masalan,
numbero'zgaruvchisi faqat butun sonlarni saqlashi mumkin, chunki uning turiint.
O'zgaruvchiga qiymat biriktirishning 3 ta usuli mavjud.
var number int = 10
Bu yerda biz number o'zgaruvchisiga 10 butun son qiymatini biriktirdik.
var number = 10
Bu yerda biz o'zgaruvchining ma'lumot turini aniq ko'rsatmayapmiz. Bunday holda, kompilyator o'zgaruvchining qiymatiga qarab uning turini avtomatik aniqlaydi. 10 qiymati butun son bo'lgani sababli, number ning ma'lumot turi int bo'ladi.
:= orqali)number := 10
Bu yerda biz number o'zgaruvchisiga 10 qiymatini biriktirish uchun := operatoridan foydalandik. Bu o'zgaruvchilarni e'lon qilish va ularga qiymat berishning eng qulay qisqartirilgan usulidir.
var count int
fmt.Println(count) // 0 chiqaradi
Bu yerda count o'zgaruvchisi 0 ni chop etadi (int turi uchun boshlang'ich qiymat), chunki biz unga hech qanday qiymat bermaganmiz.
// Xatolik: count o'zgaruvchisining turi ham, boshlang'ich qiymati ham yo'q
var count
// To'g'ri: count1 int turiga ega
var count1 int
// To'g'ri: count2 int turiga ega (qiymatdan aniqlanadi)
var count2 = 10
Quyidagi misolda uchala usuldan foydalanish ko'rsatilgan:
package main
import "fmt"
func main() {
// ma'lumot turini aniq ko'rsatgan holda e'lon qilish
var number1 int = 10
fmt.Println(number1)
// ma'lumot turini ko'rsatmasdan qiymat biriktirish
var number2 = 20
fmt.Println(number2)
// o'zgaruvchini e'lon qilishning qisqartirilgan usuli
number3 := 30
fmt.Println(number3)
}
package main
import "fmt"
func main() {
// ma'lumot turini aniq ko'rsatgan holda e'lon qilish
var number1 int = 10
fmt.Println(number1)
// ma'lumot turini ko'rsatmasdan qiymat biriktirish
var number2 = 20
fmt.Println(number2)
// o'zgaruvchini e'lon qilishning qisqartirilgan usuli
number3 := 30
fmt.Println(number3)
}
Natija:
10
20
30
O'zgaruvchi nomi aytib turganidek, biz o'zgaruvchida saqlangan qiymatni dastur davomida o'zgartirishimiz mumkin. Masalan:
// boshlang'ich qiymat
number := 10
fmt.Println("Boshlang'ich qiymat:", number) // 10 chiqaradi
// o'zgaruvchi qiymatini o'zgartirish
number = 100
fmt.Println("O'zgartirilgan qiymat:", number) // 100 chiqaradi
Dastlab o'zgaruvchida 10 saqlangan edi. So'ngra uning qiymati 100 ga o'zgartirildi.
[!WARNING] Go tilida o'zgaruvchi bir marta e'lon qilingandan so'ng, uning ma'lumot turini o'zgartirib bo'lmaydi.
Yuqoridagi misolda number o'zgaruvchisi faqat butun sonlarni saqlashi mumkin. Unga boshqa turdagi ma'lumotni berish sintaktik xatolikka olib keladi:
number := 10
// Xatolik: string ma'lumot turini int turidagi o'zgaruvchiga berib bo'lmaydi
number = "Hello"
Go tilida vergul bilan ajratgan holda bir vaqtning o'zida bir nechta o'zgaruvchilarni e'lon qilish mumkin. Masalan:
var name, age = "Palistha", 22
Bu yerda "Palistha" qiymati name o'zgaruvchisiga, 22 esa age o'zgaruvchisiga biriktiriladi.
Xuddi shu kodni qisqartirilgan usulda ham yozish mumkin:
name, age := "Palistha", 22
_) iborat bo'lishi mumkin.$, @, # va h.k.) ishlatilishi mumkin emas.int, type, for, var va h.k.) bilan bir xil bo'lishi mumkin emas.Dasturlashda doimo mazmunli va tushunarli nomlar tanlash tavsiya etiladi. Bu sizning kodingizni o'qish va tushunishni ancha osonlashtiradi.
| Yaroqsiz o'zgaruvchi (Illegal Variable) | Yomon o'zgaruvchi (Bad Variable) | Yaxshi o'zgaruvchi (Good Variable) |
|---|---|---|
1a | a | age |
s@lary | sal | salary |
first name | fn | firstName |
annual-income | annInc | annualIncome |
Konstantalar — e'lon qilingandan so'ng dastur davomida qiymatini o'zgartirib bo'lmaydigan o'zgarmas qiymatlardir. Go tilida konstantalarni yaratish uchun const kalit so'zidan foydalanamiz:
const lightSpeed = 299792458 // boshlang'ich qiymat
// Xatolik! Konstantalar qiymatini o'zgartirib bo'lmaydi
lightSpeed = 299792460
[!NOTE] Konstantalarni e'lon qilishda
:=qisqartirilgan belgisidan foydalanib bo'lmaydi.
// Xatolik keltirib chiqaradigan kod:
const lightSpeed := 299792458