Курс 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 вправи. Перш ніж братися до практики, вивчіть усі теми розділу.