04 / 68

Print Statement

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 fmt paketi tarkibida joylashgan. Shuning uchun ularni ishlatishdan oldin fayl boshida fmt paketini import qilishimiz shart:

example.go
import "fmt"

1. Go fmt.Print() funksiyasi

fmt.Print() funksiyasi qavs ichidagi ma'lumotlarni to'g'ridan-to'g'ri ekranga chiqaradi va xabardan so'ng yangi qatorga (\n) o'tmaydi.

Oddiy xabarlarni chiqarish

example.go
// fmt.Print() funksiyasini qo'llash
package main

import "fmt"

func main() {
    fmt.Print("Salom, ")
    fmt.Print("Dunyo!")
}

Natija:

kod
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

O'zgaruvchilarni ekranga chiqarish uchun o'zgaruvchi nomini qavs ichiga yozamiz:

example.go
package main

import "fmt"

func main() {
    name := "Ali"
    fmt.Print(name)
}

Natija:

kod
Ali

[!WARNING] O'zgaruvchilarni ekranga chiqarishda ularning nomini qo'shtirnoqqa olmaslik kerak (fmt.Print("name") emas, balki fmt.Print(name)). Qo'shtirnoqqa olinsa, u o'zgaruvchi qiymati emas, oddiy matn (string) deb hisoblanadi.

Bir nechta qiymatni bir vaqtda chiqarish

Bir vaqtning o'zida bir nechta matn va o'zgaruvchilarni vergul bilan ajratib chiqarish mumkin:

example.go
package main

import "fmt"

func main() {
    name := "Ali"
    fmt.Print("Ism: ", name)
}

Natija:

kod
Ism: Ali

2. Go fmt.Println() funksiyasi

fmt.Println() funksiyasi fmt.Print() ga juda o'xshash, lekin ikkita muhim afzalligi va farqi bor:

  1. Yangi qator: Har bir fmt.Println() chaqiruvi oxirida avtomatik tarzda yangi qator (\n) qo'shiladi.
  2. Bo'sh joy (probel): Bir vaqtning o'zida bir nechta qiymat yoki o'zgaruvchi berilsa, ular orasiga avtomatik ravishda bo'sh joy (probel) qo'yiladi.

Misol: fmt.Println() dan foydalanish

example.go
package main

import "fmt"

func main() {
    currentSalary := 50000

    fmt.Println("Salom")
    fmt.Println("Dunyo!")
    fmt.Println("Hozirgi maosh:", currentSalary)
}

Natija:

kod
Salom
Dunyo!
Hozirgi maosh: 50000

Muhim jihatlar:

  • Har bir xabar alohida yangi qatorga chiqarildi.
  • "Hozirgi maosh:" satridan so'ng probel yozilmagan bo'lsa ham, fmt.Println() avtomatik bo'sh joy qo'shib, keyin 50000 qiymatini chiqardi.

3. Go fmt.Printf() funksiyasi

fmt.Printf() funksiyasi ma'lumotlarni maxsus format spetsifikatorlari (format specifiers) yordamida formatlab ekranga chiqarish uchun ishlatiladi.

Keling, oddiy misolni ko'ramiz:

example.go
package main

import "fmt"

func main() {
    currentAge := 21
    fmt.Printf("Yosh = %d\n", currentAge)
}

Natija:

kod
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 Printf() funksiyasining ishlashi

Go tilida har bir ma'lumot turi uchun o'ziga xos format spetsifikatori mavjud:

Format spetsifikatorlari jadvali

Ma'lumot turiFormat spetsifikatoriTavsif
int%dButun sonlar (o'nlik sanoq sistemasida)
float%g yoki %fO'nlik kasrli sonlar
string%sBelgilar ketma-ketligi (matn)
bool%tMantiqiy qiymat (true yoki false)
ixtiyoriy%vStandart formatdagi qiymat (universal)
tip%TO'zgaruvchining ma'lumot turini ko'rsatish

Misol: Kasr sonlar (float) uchun %g spetsifikatori

example.go
package main

import "fmt"

func main() {
    annualSalary := 65000.5
    fmt.Printf("Yillik maosh: %g\n", annualSalary)
}

Natija:

kod
Yillik maosh: 65000.5

Bu yerda fmt.Printf() funksiyasi "Yillik maosh: %g" satridagi %g o'rniga 65000.5 sonini joylashtiradi.

Misol: Bir vaqtda bir nechta format spetsifikatorlaridan foydalanish

Format qatorida bir vaqtning o'zida bir nechta o'zgaruvchilar uchun spetsifikatorlarni ishlatish mumkin:

example.go
package main

import "fmt"

func main() {
    var name = "Ali"
    age := 23

    fmt.Printf("%s ning yoshi %d da.\n", name, age)
}

Natija:

kod
Ali ning yoshi 23 da.

Bu kod qanday ishlashini quyidagi diagrammada ko'rish mumkin:

Go format spetsifikatorlarining ishlashi

Diagrammada ko'rsatilganidek:

  • Birinchi o'zgaruvchi name (string) birinchi spetsifikator %s o'rniga tushadi.
  • Ikkinchi o'zgaruvchi age (int) ikkinchi spetsifikator %d o'rniga tushadi.

4. fmt paketsiz ekranga chiqarish (print va println)

Go tilida fmt paketini import qilmasdan ham ekranga ma'lumot chiqarish imkoniyati mavjud. Buning uchun tilning o'rnatilgan print() va println() funksiyalaridan foydalaniladi.

example.go
package main

func main() {
    println("fmt.Println o'rniga println ishlatildi")
    print("fmt.Print o'rniga print ishlatildi\n")
}

Natija:

kod
fmt.Println o'rniga println ishlatildi
fmt.Print o'rniga print ishlatildi

[!TIP] Doimiy dasturlash amaliyotida fmt paketidagi funksiyalardan (fmt.Println, fmt.Printf) foydalanish qat'iy tavsiya etiladi. Ichki print() va println() funksiyalari esa asosan dasturni tezkor disk raskadrovka qilish (debugging) yoki bootstrapping uchun qo'llaniladi.