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

Метод bufio.Scanner.Split

Метод bufio.Scanner.Split позволяет задать функцию разбиения, которая определяет, как входные данные будут разделяться на токены при сканировании. В качестве параметра метод принимает функцию с сигнатурой func(data []byte, atEOF bool) (advance int, token []byte, err error). По умолчанию сканер использует bufio.ScanLines для построчного разбиения, но с помощью Split можно задать собственные правила разделения данных.

Синтаксис

scanner.Split(splitFunc)

Пример

Давайте разобьем строку на слова с помощью встроенной функции bufio.ScanWords:

package main import ( "bufio" "fmt" "strings" ) func main() { text := "abcde 12345 xyz" scanner := bufio.NewScanner(strings.NewReader(text)) scanner.Split(bufio.ScanWords) for scanner.Scan() { fmt.Println(scanner.Text()) } }

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

"abcde" "12345" "xyz"

Пример

Давайте используем bufio.ScanRunes для разбиения строки на отдельные руны:

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

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

"a" "b" "c" "d" "e"

Пример

Давайте разобьем данные по байтам с помощью bufio.ScanBytes:

package main import ( "bufio" "fmt" "strings" ) func main() { text := "12345" scanner := bufio.NewScanner(strings.NewReader(text)) scanner.Split(bufio.ScanBytes) for scanner.Scan() { fmt.Println(scanner.Text()) } }

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

"1" "2" "3" "4" "5"

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

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