1
0
mirror of https://github.com/MADTeacher/go_basics.git synced 2025-11-23 21:34:47 +02:00
Files
go_basics/part_1/1.15/16.go
2025-05-28 14:52:05 +03:00

44 lines
1.4 KiB
Go

package main
import (
"fmt"
"strings"
)
func main() {
var b strings.Builder
// Write - записывает байты (строку) в Builder
n, err := b.Write([]byte("Hello, "))
if err != nil { // проверка на успешное завершение операции
panic(err)
}
fmt.Printf("After Write: %q (bytes written: %d)\n", b.String(), n)
// WriteString - записывает строку
n, _ = b.WriteString("world")
fmt.Printf("After WriteString: %q (bytes written: %d)\n", b.String(), n)
// WriteByte - записывает один байт (символ)
b.WriteByte('!')
fmt.Printf("After WriteByte: %q\n", b.String())
// WriteRune - записывает один Unicode-символ
n, _ = b.WriteRune('🌍')
fmt.Printf("After WriteRune: %q (bytes written: %d)\n", b.String(), n)
// Len - возвращает текущую длину строки
fmt.Printf("Current length: %d\n", b.Len())
// Cap - возвращает текущую емкость внутреннего буфера
fmt.Printf("Current capacity: %d\n", b.Cap())
// Grow - увеличивает емкость буфера структуры Builder
b.Grow(100)
fmt.Printf("After Grow(100), new capacity: %d\n", b.Cap())
// Reset - очищает содержимое буфера Builder-а
b.Reset()
fmt.Printf("After Reset: %q, length: %d\n", b.String(), b.Len())
}