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.
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.
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
$ go run main.go
Kodingizni ishga tushiring