Ma'lumotlarni ekranga chiqarish
Go dasturlash tilida xabarlar va ma'lumotlarni ekranga chiqarish uchun uchta asosiy funksiyadan foydalanamiz:
fmt.Print()fmt.Println()fmt.Printf()[!NOTE] Bu barcha funksiyalar Go tilining standart
fmtpaketi tarkibida joylashgan. Shuning uchun ularni ishlatishdan oldin fayl boshidafmtpaketini import qilishimiz shart:example.goimport "fmt"
fmt.Print() funksiyasi qavs ichidagi ma'lumotlarni to'g'ridan-to'g'ri ekranga chiqaradi va xabardan so'ng yangi qatorga (\n) o'tmaydi.
// fmt.Print() funksiyasini qo'llash
package main
import "fmt"
func main() {
fmt.Print("Salom, ")
fmt.Print("Dunyo!")
}
Natija:
Salom, Dunyo!
E'tibor bering, har ikkala fmt.Print() chaqiruvi bitta qatorda chiqarildi, chunki bu funksiya avtomatik ravishda yangi qator tashlamaydi.
O'zgaruvchilarni ekranga chiqarish uchun o'zgaruvchi nomini qavs ichiga yozamiz:
package main
import "fmt"
func main() {
name := "Ali"
fmt.Print(name)
}
Natija:
Ali
[!WARNING] O'zgaruvchilarni ekranga chiqarishda ularning nomini qo'shtirnoqqa olmaslik kerak (
fmt.Print("name")emas, balkifmt.Print(name)). Qo'shtirnoqqa olinsa, u o'zgaruvchi qiymati emas, oddiy matn (string) deb hisoblanadi.
Bir vaqtning o'zida bir nechta matn va o'zgaruvchilarni vergul bilan ajratib chiqarish mumkin:
package main
import "fmt"
func main() {
name := "Ali"
fmt.Print("Ism: ", name)
}
Natija:
Ism: Ali
fmt.Println() funksiyasi fmt.Print() ga juda o'xshash, lekin ikkita muhim afzalligi va farqi bor:
fmt.Println() chaqiruvi oxirida avtomatik tarzda yangi qator (\n) qo'shiladi.package main
import "fmt"
func main() {
currentSalary := 50000
fmt.Println("Salom")
fmt.Println("Dunyo!")
fmt.Println("Hozirgi maosh:", currentSalary)
}
Natija:
Salom
Dunyo!
Hozirgi maosh: 50000
Muhim jihatlar:
"Hozirgi maosh:" satridan so'ng probel yozilmagan bo'lsa ham, fmt.Println() avtomatik bo'sh joy qo'shib, keyin 50000 qiymatini chiqardi.fmt.Printf() funksiyasi ma'lumotlarni maxsus format spetsifikatorlari (format specifiers) yordamida formatlab ekranga chiqarish uchun ishlatiladi.
Keling, oddiy misolni ko'ramiz:
package main
import "fmt"
func main() {
currentAge := 21
fmt.Printf("Yosh = %d\n", currentAge)
}
Natija:
Yosh = 21
Bu yerda fmt.Printf() funksiyasi matn ichidagi %d belgisini currentAge o'zgaruvchisining qiymati bilan almashtirib chiqaradi.
%d — bu butun sonli (integer) o'zgaruvchilarning qiymatini formatlab joylashtirish uchun ishlatiladigan format spetsifikatori hisoblanadi.

Go tilida har bir ma'lumot turi uchun o'ziga xos format spetsifikatori mavjud:
| Ma'lumot turi | Format spetsifikatori | Tavsif |
|---|---|---|
int | %d | Butun sonlar (o'nlik sanoq sistemasida) |
float | %g yoki %f | O'nlik kasrli sonlar |
string | %s | Belgilar ketma-ketligi (matn) |
bool | %t | Mantiqiy qiymat (true yoki false) |
ixtiyoriy | %v | Standart formatdagi qiymat (universal) |
tip | %T | O'zgaruvchining ma'lumot turini ko'rsatish |
package main
import "fmt"
func main() {
annualSalary := 65000.5
fmt.Printf("Yillik maosh: %g\n", annualSalary)
}
Natija:
Yillik maosh: 65000.5
Bu yerda fmt.Printf() funksiyasi "Yillik maosh: %g" satridagi %g o'rniga 65000.5 sonini joylashtiradi.
Format qatorida bir vaqtning o'zida bir nechta o'zgaruvchilar uchun spetsifikatorlarni ishlatish mumkin:
package main
import "fmt"
func main() {
var name = "Ali"
age := 23
fmt.Printf("%s ning yoshi %d da.\n", name, age)
}
Natija:
Ali ning yoshi 23 da.
Bu kod qanday ishlashini quyidagi diagrammada ko'rish mumkin:

Diagrammada ko'rsatilganidek:
name (string) birinchi spetsifikator %s o'rniga tushadi.age (int) ikkinchi spetsifikator %d o'rniga tushadi.Go tilida fmt paketini import qilmasdan ham ekranga ma'lumot chiqarish imkoniyati mavjud. Buning uchun tilning o'rnatilgan print() va println() funksiyalaridan foydalaniladi.
package main
func main() {
println("fmt.Println o'rniga println ishlatildi")
print("fmt.Print o'rniga print ishlatildi\n")
}
Natija:
fmt.Println o'rniga println ishlatildi
fmt.Print o'rniga print ishlatildi
[!TIP] Doimiy dasturlash amaliyotida
fmtpaketidagi funksiyalardan (fmt.Println,fmt.Printf) foydalanish qat'iy tavsiya etiladi. Ichkiprint()vaprintln()funksiyalari esa asosan dasturni tezkor disk raskadrovka qilish (debugging) yoki bootstrapping uchun qo'llaniladi.