Section 3

3-dars — Konstantalar

const bilan o'zgarmas qiymatlar, const/var farqi va o'zgaruvchilarning ahamiyati


Investitsiya kalkulyatorimizni inflyatsiyani hisobga oladigan qilib kengaytiramiz. Inflyatsiya darajasi dastur davomida o'zgarmaydi — bunday qiymatlar uchun const (konstanta) ishlatamiz.

const nima?

const — bu o'zgarmas ma'lumot konteyneri. var kabi qiymat saqlaydi, lekin undagi qiymatni keyin hech qachon o'zgartirib bo'lmaydi.

package main
 
import (
	"fmt"
	"math"
)
 
func main() {
	const inflationRate = 2.5
	var investmentAmount float64 = 1000
	years := 10.0
	expectedReturnRate := 5.5
 
	futureValue := investmentAmount * math.Pow(1+expectedReturnRate/100, years)
	futureRealValue := futureValue / math.Pow(1+inflationRate/100, years)
 
	fmt.Println(futureValue)
	fmt.Println(futureRealValue)
}

Bu yerda yangi qism — futureRealValue: inflyatsiyani hisobga olgan haqiqiy kelajak qiymati. Inflyatsiya pulning qadrini tushiradi, shuning uchun futureValue ni (1 + inflationRate/100) ning yillar darajasiga bo'lamiz.

Agar inflyatsiya kutilgan daromaddan yuqori bo'lsa (masalan 6.5), haqiqiy qiymat boshlang'ich summadan ham past chiqadi — ya'ni pulingiz qadrini yo'qotadi.


Nega const?

const inflationRate = 2.5

Ikki sabab:

  1. Xatodan himoya. Kodda adashib inflationRate = 7 deb o'zgartirmoqchi bo'lsangiz, Go ruxsat bermaydi va xato beradi. Bu — yaxshi narsa.
  2. Maqsadni bildiradi. const so'zining o'zi o'qiyotgan odamga "bu qiymat o'zgarmaydi" deb aytadi.

Bu dasturda biz oxir-oqibat foydalanuvchidan investitsiya summasi, yillar va daromad foizini so'raymiz — lekin inflyatsiyani o'zgartirishga ruxsat bermaymiz. Shuning uchun u aynan const.


const va var farqi

varconst
O'zgartirsa bo'ladimi?HaYo'q
:= bilan yoziladimi?Ha (x := 5)Yo'q — faqat const x = 5
Boshlang'ich qiymat shartmi?Yo'qHa (keyin o'zgartirib bo'lmagani uchun)

Qoida: o'zgarmaydigan har qanday qiymatni const qiling. Bu kodingizni xavfsiz va tushunarli qiladi.


O'zgaruvchilar nega muhim?

Hozir const va var farqi unchalik sezilmaydi, chunki biz qiymatlarni o'zgartirmayapmiz. Asosiy farq: o'zgaruvchining qiymatini keyin qayta o'zgartirish mumkin.

Bu ayniqsa foydalanuvchidan ma'lumot olganda muhim bo'ladi: investmentAmount dastlab biror qiymatga ega bo'ladi, keyin foydalanuvchi kiritgan yangi qiymat bilan qayta yoziladi. Konstantalar bilan bunday qila olmaysiz — shu sabab o'zgaruvchilar dasturlashda asosiy tushuncha. Keyingi darsda aynan shuni — foydalanuvchidan kiritishni — qo'shamiz.


O'zingiz sinab ko'ring

  1. Kodni ishga tushiring. inflationRate ni 6.5 ga o'zgartiring — futureRealValue boshlang'ich summadan past tushadimi?
  2. main ichida inflationRate = 7 deb yozib ko'ring (qiymatini o'zgartirishga urinib). Qanday xato chiqadi?
  3. Yana bitta konstanta qo'shing: const taxRate = 10 va uni biror hisobda ishlating.
  4. const x := 5 deb yozib ko'ring — nega xato? (const bilan := ishlamaydi.)

2-dars · → 4-dars — Foydalanuvchidan kiritish