2019-10-11 13:57:05 +03:00

44 lines
1.7 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// _Строковый фильтр_ - это типичный тип программы,
// которая читает входные данные в stdin, обрабатывает
// их и затем выводит некоторый производный результат в
// стандартный вывод. `grep` и `sed` - это обычные строковые
// фильтры.
// Вот пример строкового фильтра в Go, который записывает
// заглавную версию всего входного текста. Вы можете
// использовать этот шаблон для написания ваших собственных
// фильтров Go.
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
func main() {
// Обертывание небуферизованного `os.Stdin` буферизованным
// сканером дает нам удобный метод сканирования `Scan`,
// который продвигает сканер к следующему токену; который
// является следующей строкой в сканере по умолчанию.
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
// `Text` возвращает текущий токен, из ввода - на
// следующую строку.
ucl := strings.ToUpper(scanner.Text())
// Печатает в верхнем регистре.
fmt.Println(ucl)
}
// Проверяем ошибки для `Scan`. Ожидается конец файла,
// и он не сообщается методом `Scan` как ошибка.
if err := scanner.Err(); err != nil {
fmt.Fprintln(os.Stderr, "error:", err)
os.Exit(1)
}
}