Corso di Raku / Oggetti, input/output ed eccezioni / Input e output

Flussi standard

Ogni programma ha tre flussi standard che lo collegano al suo ambiente: l’output standard, l’errore standard e l’input standard. Raku li rende disponibili attraverso tre variabili speciali: $*OUT, $*ERR e $*IN.

Hai scritto sull’output standard fin dall’inizio: say e print mandano il loro testo a $*OUT.

say 'Hello'; # goes to standard output

I messaggi diagnostici e di errore restano separati, sull’errore standard, così non si mescolano con l’output vero del programma. La routine note scrive lì:

note 'Something looks wrong'; # goes to standard error

Questa separazione è utile perché i due flussi possono essere rediretti in modo indipendente: puoi per esempio salvare l’output di un programma in un file e continuare comunque a vedere i suoi messaggi di errore sullo schermo.

Puoi anche scrivere direttamente sui flussi. Sia $*OUT sia $*ERR sono handle con i propri metodi say e print:

$*OUT.say('a normal line');
$*ERR.say('a diagnostic line');

Il terzo flusso, $*IN, è l’input standard. Lo hai incontrato indirettamente attraverso prompt, che ne legge una riga. Torneremo alla lettura dell’input quando guarderemo gli handle di file, perché $*IN è un handle proprio come un file aperto.

Pratica

Risolvi 1 quiz sul contenuto di questo argomento.

Esercizi

Questa sezione contiene 3 esercizi. Guarda tutti gli argomenti di questa sezione prima di iniziare gli esercizi.

  1. Output ed errori
  2. Un avviso con note
  3. Stampare senza andare a capo

Input e output   |   Output ed errori