Section 5
5-dars — Stringlarni formatlash
Println argumentlari, Printf verb'lari (%v, %f, %.1f, %T, %%), izohlar, Sprintf va ko'p qatorli stringlar
Hozir natijalarimiz xunuk chiqyapti: 10319.6261... kabi uzun kasrlar. Bu darsda chiqishni chiroyli va tushunarli qilishni o'rganamiz.
1. Println ga bir nechta qiymat
Natijaga matn qo'shishning eng oson yo'li — Println ga vergul bilan bir nechta qiymat uzatish. U ularni bo'shliq bilan ajratib, bitta qatorda chiqaradi:
fmt.Println("Future Value:", futureValue)Natija: Future Value: 1.7081444584506886e+06 — matn qo'shildi, lekin son hali ham xunuk. Buni Printf hal qiladi.
2. fmt.Printf va verb'lar
Printf (print formatted) — matn ichiga qiymatlarni maxsus belgilar orqali joylaydi. Bu belgilar verb (o'rinbosar) deyiladi:
| Verb | Nima uchun |
|---|---|
%v | har qanday qiymat (default ko'rinish) |
%f | kasrli son (float) |
%.1f | kasrli son, 1 ta kasr bilan |
%d | butun son (int) |
%s | string (matn) |
%T | qiymatning tipi (int, float64...) — debug uchun foydali |
%% | foiz belgisining o'zi (%) |
fmt.Printf("Future Value: %.1f\n", futureValue)%.1f—futureValueshu yerga, 1 kasr bilan qo'yiladi\n— yangi qatorga o'tish belgisi (Printfo'zi yangi qatorga o'tmaydi)
Natija: Future Value: 10319.6
%.2f→ 2 kasr (10319.63),%.0f→ kasrsiz (10320). Verb'lar soni qancha bo'lsa, undan keyin shuncha qiymat shu tartibda uzatiladi:
fmt.Printf("FV: %.1f\nReal FV: %.1f\n", futureValue, futureRealValue)3. Izohlar (comments)
// bilan izoh yoziladi — Go uni e'tiborsiz qoldiradi. Izoh kodni tushuntirish yoki kodni vaqtincha "o'chirib qo'yish" uchun ishlatiladi:
// Bu izoh — ishlamaydi
// fmt.Println("eski usul") // bu kod vaqtincha o'chirilgan
fmt.Printf("Future Value: %.1f\n", futureValue)4. fmt.Sprintf — stringga yig'ish
Printf darhol ekranga chiqaradi. Sprintf esa chiqarmaydi, balki natijani stringga aylantirib qaytaradi — uni o'zgaruvchiga saqlaysiz:
formattedFV := fmt.Sprintf("Future Value: %.1f\n", futureValue)
formattedRFV := fmt.Sprintf("Future Value (adjusted for Inflation): %.1f\n", futureRealValue)
fmt.Print(formattedFV, formattedRFV)Sprintf dagi S — String: "natijani ekranga emas, stringga sol".
| Funksiya | Nima qiladi |
|---|---|
Printf | formatlaydi va darhol chiqaradi |
Sprintf | formatlaydi va stringga qaytaradi (chiqarmaydi) |
5. Ko'p qatorli stringlar (backtick)
Oddiy qo'shtirnoq ("...") bitta qatorda bo'ladi — uni fizik qatorlarga bo'lib bo'lmaydi. Ko'p qatorli matn uchun backtick (`) ishlatiladi:
text := `Bu birinchi qator
Bu ikkinchi qator
Bu uchinchi qator`Backtick — bir tirnoq (') emas, klaviaturadagi alohida belgi (odatda Tab ustida). Backtick ichidagi matn "xom" (raw) bo'ladi: \n kabi maxsus belgilar ishlamaydi, ular oddiy matn sifatida chiqadi. Yangi qator uchun shunchaki Enter bosasiz.
Backtick ayniqsa uzun SQL so'rovlari, HTML yoki ko'rsatmalar (help text) yozishda qulay.
O'zingiz sinab ko'ring
- Investitsiya kalkulyatoringizdagi
PrintlnlarniPrintfga almashtirib,%.1fbilan chiqaring. %.1fni%.2f, keyin%.0fqilib natijani solishtiring.%TbilanfutureValuening tipini chiqaring — nima chiqadi?Sprintfbilan ikkala natijani bitta o'zgaruvchiga yig'ing, keyin bir martaPrintqiling.- Backtick bilan 3 qatorli "hisobot" matnini yozib chiqaring. Ichiga
\nqo'shib ko'ring — u qatorga o'tadimi yoki matn bo'lib chiqadimi?
← 4-dars · → 6-dars — Funksiyalar