РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
157 of 1593 menu

Функция strings.NewReader

Функция strings.NewReader создает новый объект strings.Reader, который позволяет читать данные из переданной строки. Она принимает один параметр - строку, из которой будет производиться чтение. Возвращаемый объект реализует интерфейс io.Reader, что позволяет использовать его в функциях, работающих с потоками данных, например, при чтении из HTTP-запросов или при работе с файлами.

Синтаксис

strings.NewReader(str)

Пример

Давайте создадим Reader из строки "abcde" и прочитаем данные из него:

package main import ( "fmt" "strings" ) func main() { reader := strings.NewReader("abcde") buf := make([]byte, 5) n, err := reader.Read(buf) if err != nil { fmt.Println("Error:", err) return } fmt.Printf("Read %d bytes: %s\n", n, string(buf)) }

Результат выполнения кода:

"Read 5 bytes: abcde"

Пример

Давайте прочитаем строку по частям, используя метод Read:

package main import ( "fmt" "strings" ) func main() { reader := strings.NewReader("12345") buf := make([]byte, 2) for { n, err := reader.Read(buf) if n > 0 { fmt.Printf("Read: %s\n", string(buf[:n])) } if err != nil { break } } }

Результат выполнения кода:

"Read: 12" "Read: 34" "Read: 5"

Пример

Функция strings.NewReader позволяет читать данные с определенной позиции, используя метод Seek:

package main import ( "fmt" "io" "strings" ) func main() { reader := strings.NewReader("abcde") reader.Seek(2, io.SeekStart) buf := make([]byte, 3) n, _ := reader.Read(buf) fmt.Printf("Read from position 2: %s\n", string(buf[:n])) }

Результат выполнения кода:

"Read from position 2: cde"

Смотрите также

  • тип данных strings.Reader,
    который реализует чтение из строки
  • функцию bytes.NewReader,
    которая создает Reader для чтения из слайса байт
  • функцию strings.Builder,
    которая используется для эффективной сборки строк
  • интерфейс io.Reader,
    который реализует strings.Reader
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить