LevelUpGo
Math That Makes Sense

Math That Makes Sense

Go matematik amallarni siz kutgandek bajaradi, faqat bitta farq bilan: turlarni aralashtirishga yo'l qo'ymaydi.

Go'da barcha arifmetik operatorlar mavjud:

example.go
sum := 10 + 3   // 13
diff := 10 - 3  // 7
prod := 10 * 3  // 30
quot := 10 / 3  // 3  (3.33 emas!)
rem := 10 % 3   // 1

Kutib turing, 10 / 33mi? Ha. Ikkala son ham butun son (integer) bo'lganda, Go butun sonli bo'lish (integer division) qiladi. U kasr qismini butunlay tashlab yuboradi. Yaxlitlash yo'q. Shunchaki yo'qoladi.

Haqiqiy javobni xohlaysizmi? Floatlardan foydalaning:

example.go
result := 10.0 / 3.0  // 3.3333333333333335

Go turlar borasida qattiqqo'l. Bitta ifodada butun son va floatni aralashtira olmaysiz, ularni aniq (explicit) aylantirishingiz kerak:

example.go
x := 10
y := 3.0
result := float64(x) / y  // 3.3333...

Bu boshida bezovta qiluvchidek tuyulishi mumkin, lekin bu xatolarning oldini oladi. Go har doim nimani nazarda tutayotganingizni aniq aytishingizni talab qiladi.

>_ Exercise

Siz kechki ovqat hisobini bo'lishtiryapsiz. Boshlang'ich kod sizga quyidagilarni beradi:

  • total (float64: 95.50)
  • people (int: 4)

Har bir kishining ulushini hisoblang va natijani aynan quyidagi formatda chop eting:

example.go
Each person pays: $23.88

Stuck? Reveal a hint to help you.

Hints (0/3)

Key Takeaway

Key Takeaway:

Go turlarni hech qachon sukut bo'yicha (silently) aylantirmaydi. Agar int va floatlarni aralashtirmoqchi bo'lsangiz, float64() bilan aniq (explicit) aylantirasiz.

NEXT UP

Making Decisions

OUTPUT

$ go run main.go
Kodingizni ishga tushiring

Math That Makes Sense

Go matematik amallarni siz kutgandek bajaradi, faqat bitta farq bilan: turlarni aralashtirishga yo'l qo'ymaydi.

Go'da barcha arifmetik operatorlar mavjud:

example.go
sum := 10 + 3   // 13
diff := 10 - 3  // 7
prod := 10 * 3  // 30
quot := 10 / 3  // 3  (3.33 emas!)
rem := 10 % 3   // 1

Kutib turing, 10 / 33mi? Ha. Ikkala son ham butun son (integer) bo'lganda, Go butun sonli bo'lish (integer division) qiladi. U kasr qismini butunlay tashlab yuboradi. Yaxlitlash yo'q. Shunchaki yo'qoladi.

Haqiqiy javobni xohlaysizmi? Floatlardan foydalaning:

example.go
result := 10.0 / 3.0  // 3.3333333333333335

Go turlar borasida qattiqqo'l. Bitta ifodada butun son va floatni aralashtira olmaysiz, ularni aniq (explicit) aylantirishingiz kerak:

example.go
x := 10
y := 3.0
result := float64(x) / y  // 3.3333...

Bu boshida bezovta qiluvchidek tuyulishi mumkin, lekin bu xatolarning oldini oladi. Go har doim nimani nazarda tutayotganingizni aniq aytishingizni talab qiladi.

>_ Exercise

Siz kechki ovqat hisobini bo'lishtiryapsiz. Boshlang'ich kod sizga quyidagilarni beradi:

  • total (float64: 95.50)
  • people (int: 4)

Har bir kishining ulushini hisoblang va natijani aynan quyidagi formatda chop eting:

example.go
Each person pays: $23.88

Stuck? Reveal a hint to help you.

Hints (0/3)

Key Takeaway

Key Takeaway:

Go turlarni hech qachon sukut bo'yicha (silently) aylantirmaydi. Agar int va floatlarni aralashtirmoqchi bo'lsangiz, float64() bilan aniq (explicit) aylantirasiz.

NEXT UP

Making Decisions