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

  1. Виведення та помилки
  2. Попередження через note
  3. Виведення без переходу на новий рядок

Навігація курсом

Введення та виведення   |   Виведення та помилки