Описание типов пакета string языка программирования Go

Описание типов и их функций из пакета string для языка Go с примерами

type Builder


type Builder struct {
    // содержит отфильтрованные или неэкспортируемые поля
}

Builder используется для эффективного построения строки с помощью методов Builder.Write. Он минимизирует копирование памяти. Нулевое значение готово к использованию. Не копируйте Builder, отличное от нуля.

Пример
package main

import (
	"fmt"
	"strings"
)

func main() {
	var b strings.Builder
	for i := 3; i >= 1; i-- {
		fmt.Fprintf(&b, "%d...", i)
	}
	b.WriteString("ignition")
	fmt.Println(b.String())

}

Output:

3...2...1...ignition

func (*Builder) Cap

func (b *Builder) Cap() int

Cap возвращает емкость базового байтового слайса builder. Это общее пространство, выделенное для строчки, которая создается, и включает в себя все уже записанные байты.

func (*Builder) Grow

func (b *Builder) Grow(n int)

Grow увеличивает емкость b, если это необходимо, чтобы гарантировать пространство для еще n байтов. После Grow(n) в b можно записать как минимум n байтов без дополнительного выделения памяти. Если n отрицательно, Grow вызывает панику.

func (*Builder) Len

func (b *Builder) Len() int

Len возвращает количество накопленных байтов; b.Len() == len(b.String()).

func (*Builder) Reset

func (b *Builder) Reset()

Reset сбрасывает Builder в пустое состояние.

func (*Builder) String

func (b *Builder) String() string

String возвращает накопленную строку.

func (*Builder) Write

func (b *Builder) Write(p []byte) (int, error)

Write добавляет содержимое p в буфер b. Write всегда возвращает len(p), nil.

func (*Builder) WriteByte

func (b *Builder) WriteByte(c byte) error

WriteByte добавляет байт c в буфер b. Возвращаемая ошибка всегда равна nil.

func (*Builder) WriteRune

func (b *Builder) WriteRune(r rune) (int, error)

WriteRune добавляет UTF-8-кодировку кодовой точки Unicode r в буфер b. Возвращает длину r и ошибку nil.

func (*Builder) WriteString

func (b *Builder) WriteString(s string) (int, error)

WriteString добавляет содержимое s в буфер b. Возвращает длину s и ошибку nil.

type Reader

type Reader struct {
    // содержит отфильтрованные или неэкспортируемые поля
}

Reader реализует интерфейсы io.Reader, io.ReaderAt, io.ByteReader, io.ByteScanner, io.RuneReader, io.RuneScanner, io.Seeker и io.WriterTo, читая из строки. Нулевое значение для Reader работает как Reader пустой строки.

func NewReader

func NewReader(s string) *Reader

NewReader возвращает новый Reader, читающий из s. Он похож на bytes.NewBufferString, но более эффективен и не поддается записи.

func (*Reader) Len

func (r *Reader) Len() int

Len возвращает количество байтов непрочитанной части строки.

func (*Reader) Read

func (r *Reader) Read(b []byte) (n int, err error)

Read реализует интерфейс io.Reader.

func (*Reader) ReadAt

func (r *Reader) ReadAt(b []byte, off int64) (n int, err error)

ReadAt реализует интерфейс io.ReaderAt.

func (*Reader) ReadByte

func (r *Reader) ReadByte() (byte, error)

ReadByte реализует интерфейс io.ByteReader.

func (*Reader) ReadRune

func (r *Reader) ReadRune() (ch rune, size int, err error)

ReadRune реализует интерфейс io.RuneReader.

func (*Reader) Reset

func (r *Reader) Reset(s string)

Reset сбрасывает Reader для чтения из s.

func (*Reader) Seek

func (r *Reader) Seek(offset int64, whence int) (int64, error)

Seek реализует интерфейс io.Seeker.

func (*Reader) Size

func (r *Reader) Size() int64

Size возвращает исходную длину базовой строки. Size — это количество байтов, доступных для чтения с помощью Reader.ReadAt. Возвращаемое значение всегда одинаково и не зависит от вызовов других методов.

func (*Reader) UnreadByte

func (r *Reader) UnreadByte() error

UnreadByte реализует интерфейс io.ByteScanner.

func (*Reader) UnreadRune

func (r *Reader) UnreadRune() error

UnreadRune реализует интерфейс io.RuneScanner.

func (*Reader) WriteTo

func (r *Reader) WriteTo(w io.Writer) (n int64, err error)

WriteTo реализует интерфейс io.WriterTo.

type Replacer

type Replacer struct {
    // содержит отфильтрованные или неэкспортируемые поля
}

Replacer заменяет список строк на замены. Он безопасен для одновременного использования несколькими goroutines.

func NewReplacer

func NewReplacer(oldnew ...string) *Replacer

NewReplacer возвращает новый Replacer из списка пар старых и новых строк. Замены выполняются в том порядке, в котором они появляются в целевой строке, без перекрывающихся совпадений. Сравнение старых строк выполняется в порядке аргументов.

NewReplacer вызывает панику, если ему передано нечетное количество аргументов.

Пример
package main

import (
	"fmt"
	"strings"
)

func main() {
	r := strings.NewReplacer("<", "<", ">", ">")
	fmt.Println(r.Replace("This is <b>HTML</b>!"))
}
Output:

This is <b>HTML</b>!

func (*Replacer) Replace

func (r *Replacer) Replace(s string) string

Replace возвращает копию s со всеми выполненными заменами.

func (*Replacer) WriteString

func (r *Replacer) WriteString(w io.Writer, s string) (n int, err error)

WriteString записывает s в w со всеми выполненными заменами.