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

Метод bufio.Scanner.Scan

Метод bufio.Scanner.Scan предназначен для пошагового чтения входных данных, разделенных на токены (по умолчанию — строки). Он возвращает true, если был успешно прочитан очередной токен, и false в конце данных или при возникновении ошибки. Метод не принимает параметров и работает совместно с методами Text или Bytes для получения прочитанного токена.

Синтаксис

scanner.Scan()

Пример

Давайте создадим сканер для строки "abcde" и прочитаем все токены (по умолчанию — строки). В качестве источника данных используем strings.NewReader:

package main import ( "bufio" "fmt" "strings" ) func main() { data := "abcde" scanner := bufio.NewScanner(strings.NewReader(data)) for scanner.Scan() { token := scanner.Text() fmt.Println(token) } }

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

"abcde"

Пример

Теперь рассмотрим чтение нескольких строк. Сканер по умолчанию разбивает данные по символу новой строки \n:

package main import ( "bufio" "fmt" "strings" ) func main() { data := "line1\nline2\nline3" scanner := bufio.NewScanner(strings.NewReader(data)) for scanner.Scan() { line := scanner.Text() fmt.Println(line) } }

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

"line1" "line2" "line3"

Пример

Обработаем случай, когда данные заканчиваются. Метод Scan вернет false, и цикл завершится. Также можно проверить ошибку с помощью метода Err:

package main import ( "bufio" "fmt" "strings" ) func main() { data := "abc" scanner := bufio.NewScanner(strings.NewReader(data)) for scanner.Scan() { fmt.Println(scanner.Text()) } if err := scanner.Err(); err != nil { fmt.Println("Error:", err) } }

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

"abc"

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

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