Курс по 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. Печат без нов ред

Навигация в курса

Вход и изход   |   Изход и грешки