Курс языка программирования Raku / Объекты, ввод-вывод и исключения / Ввод и вывод
Стандартные потоки
У всякой программы есть три стандартных потока, связывающих
её с окружением: стандартный вывод, стандартный поток ошибок и
стандартный ввод. Raku делает их доступными через три специальные
переменные: $*OUT, $*ERR и
$*IN.
В стандартный вывод вы писали всё это время: say и
print отправляют свой текст в $*OUT.
say 'Hello'; # уходит в стандартный выводДиагностические сообщения и сообщения об ошибках держат отдельно, в
стандартном потоке ошибок, чтобы они не подмешивались к настоящему
выводу программы. Туда пишет процедура note:
note 'Something looks wrong'; # уходит в стандартный поток ошибокТакое разделение полезно, потому что эти два потока можно перенаправлять независимо — например, сохранить вывод программы в файл, продолжая видеть сообщения об ошибках на экране.
Писать в потоки можно и напрямую. И $*OUT, и
$*ERR — это дескрипторы со своими методами
say и print:
$*OUT.say('a normal line');
$*ERR.say('a diagnostic line');Третий поток, $*IN, — это стандартный ввод. С ним вы
косвенно встречались через prompt, который читает из него
строку. К чтению ввода мы вернёмся, когда будем рассматривать файловые дескрипторы, потому что
$*IN — такой же дескриптор, как и открытый файл.
Практика
Пройдите 1 тест по содержанию этой темы.
Упражнения
В этом разделе 3 упражнения. Прежде чем приступать к практике, изучите все темы раздела.
Навигация по курсу
← Ввод и вывод | Вывод и ошибки →