Questo documento mostra i modi per utilizzare i controlli di connessione.
Esempi di valori
Quando definisci i controlli di connessione per input e output, in genere devi considerare i controlli come rappresentanti di tipi.
I controlli degli input devono includere tutti i "tipi" accettati e i controlli delle uscite devono includere esattamente ciò che "restituisce".
Accettare un solo tipo
Nel caso più semplice, in cui vuoi creare un blocco che "accetta" o "restituisce" un tipo, devi includere questo tipo nel controllo della connessione.
Accettare più tipi
Per creare un blocco che "accetti" più tipi, devi includere ogni tipo accettato nel controllo di connessione dell'input.
Per convenzione, se un'uscita può essere accettata a volte in più situazioni (ad es. se consenti a volte di utilizzare i numeri come stringhe), l'uscita deve essere più restrittiva e gli input devono essere più permissivi. Questa convenzione garantisce che le uscite non si connettano dove non sono supportate.
Accetta qualsiasi tipo
Per creare un blocco che "accetti" qualsiasi tipo, devi impostare il controllo di connessione dell'input su null
.
Sottotipi di reso
Per creare un blocco che "restituisce" un sottotipo, devi includere sia il tipo sia il supertipo nel controllo di connessione dell'output.
Nel caso dei sottotipi, è consentito avere più controlli in un controllo dell'output, perché il blocco sempre "restituisce" entrambi i tipi.
Restituire tipi con parametri
Per creare un blocco che "restituisce" un tipo con parametri, devi includere sia la versione con parametri sia la versione senza parametri nel controllo di connessione dell'output.
A seconda del livello di severità che vuoi applicare al linguaggio del blocco, ti consigliamo di includere anche le deviazioni del tipo.
Come per i sottotipi, in questo caso è consentito avere più controlli in un controllo di output, perché il blocco sempre "restituisce" entrambi i tipi.
Esempi di stack o istruzioni
Esistono alcuni modi comuni in cui gli sviluppatori definiscono i controlli per le connessioni precedenti e successive. Di solito si pensa che queste limitino l'ordinamento dei blocchi.
Le connessioni successive devono includere i blocchi che devono seguire quello corrente e quelle precedenti devono includere il "blocco corrente".
Mantenere i blocchi in ordine
Per creare un insieme di blocchi che si connettono in un ordine definito, devi includere i blocchi che devono seguire quello corrente nel controllo di connessione successivo e il blocco corrente nel controllo di connessione precedente.
Consenti molti blocchi intermedi
Per creare un insieme di blocchi ordinati che consentano molti blocchi intermedi, devi includere almeno una voce dal controllo di connessione precedente del blocco intermedio nel controllo di connessione successivo del blocco intermedio. In questo modo, il blocco può essere seguito da più blocchi uguali.
Non consentire blocchi intermedi
Per creare un insieme di blocchi ordinati in cui i blocchi centrali sono facoltativi, devi includere almeno una voce sia dal controllo di connessione precedente del blocco centrale sia dal controllo di connessione precedente dell'ultimo blocco nel controllo di connessione successivo del primo blocco. In questo modo, il primo blocco può essere seguito da un blocco intermedio o da un blocco finale.
Serie di tipo o-e
Per creare un blocco che può essere seguito solo da blocchi di un gruppo o da blocchi di un altro (e non da entrambi), devi fare due cose:
Devi includere almeno una voce da entrambi i controlli di connessione precedenti del gruppo nel controllo di connessione successivo del primo blocco.
Devi definire i controlli di connessione successivi dei gruppi in modo che includano solo i valori presenti nei controlli di connessione precedenti (in modo che possano essere seguiti solo da blocchi dello stesso gruppo).