GoDasturchi
bytes.Buffer for Building Data

bytes.Buffer for Building Data

Ma'lumot yig'ish uchun bytes.Buffer

bytes.Buffer — xotirada o'sib boradigan bayt to'plami. Uning ajoyib tomoni: u ham io.Writer, ham io.Reader bo'la oladi — ya'ni faylga yozadigan har qanday funksiyani, faylsiz, to'g'ridan-to'g'ri xotirada sinab ko'rish mumkin.

example.go
package main

import (
	"bytes"
	"fmt"
)

func main() {
	var buf bytes.Buffer
	buf.WriteString("Hisobot\n")
	buf.WriteString("========\n")
	fmt.Fprintf(&buf, "Jami: %d ta buyurtma\n", 42)

	fmt.Print(buf.String())
	fmt.Println("uzunlik:", buf.Len())
}

fmt.Fprintf(writer, format, ...)fmt.Printf bilan bir xil, faqat ekranga emas, berilgan io.Writerga (bu yerda — buferga) yozadi. Bu naqsh juda foydali: funksiyangizni "biror io.Writerga yoz" deb yozsangiz, keyin uni ekranga (os.Stdout), faylga yoki bytes.Bufferga (testlash uchun) bemalol yo'naltirish mumkin bo'ladi.

>_ Exercise

bytes.Buffer yordamida kichik chek (receipt) matnini yig'ing.

  • bytes.Buffer yarating
  • unga "Chek\n" va har bir mahsulot uchun "- nomi: narxi\n" qatorlarini yozing (fmt.Fprintf)
  • buferning to'liq matnini chop eting

Stuck? Reveal a hint to help you.

Hints (0/3)

Key Takeaway

Key Takeaway:

bytes.Buffer xotirada matn/ma'lumot yig'ish uchun ishlatiladi va o'zi ham io.Writer, ham io.Reader bo'la oladi — testlash va vaqtinchalik hisob-kitob uchun juda qulay.

NEXT UP

Binary Encoding with encoding/binary

OUTPUT

$ go run main.go
Kodingizni ishga tushiring

bytes.Buffer for Building Data

Ma'lumot yig'ish uchun bytes.Buffer

bytes.Buffer — xotirada o'sib boradigan bayt to'plami. Uning ajoyib tomoni: u ham io.Writer, ham io.Reader bo'la oladi — ya'ni faylga yozadigan har qanday funksiyani, faylsiz, to'g'ridan-to'g'ri xotirada sinab ko'rish mumkin.

example.go
package main

import (
	"bytes"
	"fmt"
)

func main() {
	var buf bytes.Buffer
	buf.WriteString("Hisobot\n")
	buf.WriteString("========\n")
	fmt.Fprintf(&buf, "Jami: %d ta buyurtma\n", 42)

	fmt.Print(buf.String())
	fmt.Println("uzunlik:", buf.Len())
}

fmt.Fprintf(writer, format, ...)fmt.Printf bilan bir xil, faqat ekranga emas, berilgan io.Writerga (bu yerda — buferga) yozadi. Bu naqsh juda foydali: funksiyangizni "biror io.Writerga yoz" deb yozsangiz, keyin uni ekranga (os.Stdout), faylga yoki bytes.Bufferga (testlash uchun) bemalol yo'naltirish mumkin bo'ladi.

>_ Exercise

bytes.Buffer yordamida kichik chek (receipt) matnini yig'ing.

  • bytes.Buffer yarating
  • unga "Chek\n" va har bir mahsulot uchun "- nomi: narxi\n" qatorlarini yozing (fmt.Fprintf)
  • buferning to'liq matnini chop eting

Stuck? Reveal a hint to help you.

Hints (0/3)

Key Takeaway

Key Takeaway:

bytes.Buffer xotirada matn/ma'lumot yig'ish uchun ishlatiladi va o'zi ham io.Writer, ham io.Reader bo'la oladi — testlash va vaqtinchalik hisob-kitob uchun juda qulay.

NEXT UP

Binary Encoding with encoding/binary