Sezione 03 / 07
Come il programma interagisce con l'utente: mostrare testo, leggere input e il comportamento speciale di @ su variabili inesistenti.
TALK è la parola chiave principale per interagire con la console. Tutto quello che segue viene mostrato nell'output. Per includere il valore di una variabile si usa @ davanti al nome.
Il "potere" di @ si interrompe al primo carattere non ammesso in un nome di variabile. Caratteri come !, ,, spazio terminano il riferimento:
Per stampare una @ letterale si usa l'escape \@:
@Se @ fa riferimento ad una variabile che non esiste ancora, la console chiede automaticamente un input all'utente e lo salva in quella variabile. L'esecuzione si blocca finché l'utente non preme invio.
Questo vale per tutto il testo del TALK, nell'ordine in cui appaiono le variabili. Se ne metti più d'una sulla stessa riga e nessuna esiste, verranno chieste in sequenza:
Esistono due varianti di TALK che sono considerate zucchero sintattico — ossia scorciatoie comode ma non indispensabili, e per questo deprecabili:
| Parola chiave | Comportamento |
|---|---|
| OUT | Come TALK ma solo output: con variabili inesistenti dà errore invece di chiedere input |
| INP | Come TALK ma richiede almeno un input: deve avere almeno una variabile inesistente |
TALK. OUT e INP possono tornare utili per chiarezza in certi contesti, ma TALK fa tutto quello che fanno loro.
TALK:V e TALK:FLe etichette in LINE si usano per dare un nome ad una riga di codice e richiamarla (verranno trattate in dettaglio più avanti). TALK però ha due etichette speciali con un comportamento fisso:
TALK:V attiva un input persistente che appare sempre alla fine dell'output in console, con una domanda personalizzabile. Rimane attivo finché non viene disattivato.
L'input inserito dall'utente viene salvato automaticamente nella variabile speciale ASKED.
@ASKED, oppure viene attivato un altro input con TALK o INP, TALK:V si disattiva automaticamente.
5 domande · serve l'80% per passare alla sezione 4
Domanda 01
Cosa produce questo codice?
Domanda 02
Cosa succede se scrivi TALK @nome e la variabile nome non esiste?
Domanda 03 — Completamento
Completa il codice per stampare: Ciao, @utente! Benvenuto. (la @ deve apparire letteralmente, non come riferimento a variabile)
Domanda 04
Qual è la differenza principale tra OUT e TALK?
Domanda 05
In quale variabile speciale viene salvato l'input inserito dall'utente quando è attivo TALK:V?