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

Тип bufio.Scanner

Тип bufio.Scanner представляет собой сканер для чтения данных из ввода. Он автоматически разбивает входные данные на токены (по умолчанию на строки) и предоставляет удобный интерфейс для итерации. В первый параметр функция NewScanner принимает источник данных (реализующий интерфейс io.Reader), возвращает указатель на новый сканер.

Синтаксис

scanner := bufio.NewScanner(reader) for scanner.Scan() { text := scanner.Text() // обработка строки } if err := scanner.Err(); err != nil { // обработка ошибки }

Пример

Давайте прочитаем построчно строку из нескольких строк:

package main import ( "bufio" "fmt" "strings" ) func main() { data := "строка 1\nстрока 2\nстрока 3" scanner := bufio.NewScanner(strings.NewReader(data)) for scanner.Scan() { fmt.Println(scanner.Text()) } }

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

"строка 1" "строка 2" "строка 3"

Пример

Давайте используем метод Bytes для получения сырых байтов:

package main import ( "bufio" "fmt" "strings" ) func main() { data := "abcde\n12345" scanner := bufio.NewScanner(strings.NewReader(data)) for scanner.Scan() { bytes := scanner.Bytes() fmt.Printf("%q\n", bytes) } }

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

"abcde" "12345"

Пример

Давайте проверим ошибку после сканирования:

package main import ( "bufio" "fmt" "strings" ) func main() { data := "hello\nworld" scanner := bufio.NewScanner(strings.NewReader(data)) for scanner.Scan() { fmt.Println(scanner.Text()) } if err := scanner.Err(); err != nil { fmt.Printf("ошибка: %v\n", err) } else { fmt.Println("сканирование завершено успешно") } }

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

"hello" "world" "сканирование завершено успешно"

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

  • метод bufio.Scanner.Scan,
    который выполняет чтение следующего токена
  • метод bufio.Scanner.Text,
    который возвращает текущий токен как строку
  • метод bufio.Scanner.Bytes,
    который возвращает текущий токен как срез байтов
  • метод bufio.Scanner.Err,
    который возвращает ошибку сканирования
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить