Ce document explique comment utiliser les vérifications de connexion.
Exemples de valeurs
Lorsque vous définissez des vérifications de connexion pour les entrées et les sorties, vous devez généralement considérer les vérifications comme représentant des types.
Les vérifications des entrées doivent inclure tous les "types " qu'elles acceptent, et les vérifications des sorties doivent inclure exactement ce qu'elles "renversent".
Accepter un seul type
Dans le cas le plus simple, lorsque vous souhaitez créer un bloc qui "accepte" ou "renvoie" un type, vous devez inclure ce type dans la vérification de la connexion.
Accepter plusieurs types
Pour créer un bloc qui "accepte" plusieurs types, vous devez inclure tous les types acceptés dans la vérification de la connexion de l'entrée.
Par convention, si une sortie peut parfois être acceptée dans plusieurs situations (par exemple, si vous autorisez parfois les nombres à être utilisés comme chaînes), la sortie doit être plus restrictive et les entrées doivent être plus permissives. Cette convention garantit que les sorties ne se connectent pas là où elles ne sont pas compatibles.
Accepter tous les types
Pour créer un bloc qui "accepte" n'importe quel type, vous devez définir la vérification de la connexion de l'entrée sur null
.
Sous-types de retour
Pour créer un bloc qui "renvoie" un sous-type, vous devez inclure à la fois le type et le supertype dans la vérification de la connexion de la sortie.
Dans le cas des sous-types, il est acceptable d'avoir plusieurs vérifications dans une vérification de sortie, car le bloc toujours "renvoie" les deux types.
Renvoyer des types paramétrés
Pour créer un bloc qui "renvoie" un type paramétré, vous devez inclure à la fois la version paramétrée et la version non paramétrée dans la vérification de la connexion de la sortie.
Selon le niveau de sévérité souhaité pour votre langage de blocage, vous pouvez également inclure la ou les variances du type.
Comme pour les sous-types, il est acceptable d'avoir plusieurs vérifications dans une vérification de sortie dans ce cas, car le bloc renvoie toujours les deux types.
Exemples de pile ou d'instructions
Il existe plusieurs méthodes courantes pour que les développeurs définissent des vérifications des connexions précédentes et suivantes. En général, vous pouvez considérer ces éléments comme limitant l'ordre des blocs.
Les connexions suivantes doivent inclure les blocs qui doivent suivre le bloc actuel, et les connexions précédentes doivent inclure ce que le bloc actuel "est".
Maintenir l'ordre des blocs
Pour créer un ensemble de blocs qui se connectent dans un ordre défini, vous devez inclure les blocs qui doivent suivre le bloc actuel lors de la prochaine vérification de la connexion et ce que le bloc actuel "est" lors de la vérification de la connexion précédente.
Autoriser de nombreux blocs intermédiaires
Pour créer un ensemble de blocs ordonnés qui autorisent de nombreux blocs intermédiaires, vous devez inclure au moins une entrée de la vérification de connexion précédente du bloc intermédiaire dans la vérification de connexion suivante du bloc intermédiaire. Cela permet au bloc d'être suivi par d'autres blocs identiques.
N'autoriser aucun bloc intermédiaire
Pour créer un ensemble de blocs ordonnés où les blocs du milieu sont facultatifs, vous devez inclure au moins une entrée de la vérification de connexion précédente du bloc du milieu et de la vérification de connexion précédente du dernier bloc dans la vérification de connexion suivante du premier bloc. Cela permet au premier bloc d'être suivi d'un bloc intermédiaire ou d'un dernier bloc.
Piles "ou"
Pour créer un bloc qui ne peut être suivi que par des blocs d'un groupe ou d'un autre (et non les deux), vous devez effectuer deux opérations:
Vous devez inclure au moins une entrée des deux vérifications de connexion précédentes des groupes dans la prochaine vérification de connexion du premier bloc.
Vous devez définir les prochaines vérifications de connexion des groupes pour n'inclure que les valeurs qui figurent dans leurs vérifications de connexion précédentes (elles ne peuvent donc être suivies que par des blocs du même groupe).