Este documento mostra maneiras de usar as verificações de conexão.
Exemplos de valor
Ao definir verificações de conexão para entradas e saídas, geralmente é preciso pensar nas verificações como tipos de representação.
As verificações de entrada precisam incluir todos os "tipos" aceitos, e as verificações de saída precisam incluir exatamente o que elas "retornam".
Aceitar um único tipo
No caso mais básico, em que você quer criar um bloco que "aceita" ou "retorna" um tipo, é necessário incluir esse tipo na verificação de conexão.
Aceitar vários tipos
Para criar um bloco que "aceita" vários tipos, é necessário incluir todos os tipos aceitos na verificação de conexão da entrada.
Por convenção, se uma saída pode ser às vezes aceita em várias situações (por exemplo, se você permitir que números sejam usados como strings), a saída precisa ser mais restritiva, e as entradas precisam ser mais permissivas. Essa convenção garante que as saídas não se conectem onde não há suporte.
Aceitar qualquer tipo
Para criar um bloco que "aceita" qualquer tipo, defina a verificação de conexão
da entrada como null
.
Subtipos de retorno
Para criar um bloco que "retorna" um subtipo, é necessário incluir o tipo e o supertipo na verificação de conexão da saída.
No caso de subtipos, é possível ter várias verificações em uma verificação de saída, porque o bloco sempre "retorna" os dois tipos.
Retornar tipos parametrizados
Para criar um bloco que "retorna" um tipo parametrizado, é necessário incluir a versão parametrizada e a não parametrizada na verificação de conexão da saída.
Dependendo da rigidez da linguagem do bloco, você também pode incluir as variações do tipo.
Assim como nos subtipos, é possível ter várias verificações em uma verificação de saída neste caso, porque o bloco sempre "retorna" os dois tipos.
Exemplos de pilha ou declaração
Há algumas maneiras comuns de os desenvolvedores definirem verificações para conexões anteriores e seguintes. Normalmente, pense nelas como uma restrição à ordem dos blocos.
As próximas conexões precisam incluir quais blocos devem seguir o atual, e as conexões anteriores precisam incluir o que o bloco atual "é".
Manter os blocos em ordem
Para criar um conjunto de blocos que se conectam em uma ordem definida, é necessário incluir quais blocos devem seguir o atual na próxima verificação de conexão e o que o bloco atual "é" na verificação de conexão anterior.
Permitir muitos blocos intermediários
Para criar um conjunto de blocos ordenados que permitam muitos blocos intermediários, é necessário incluir pelo menos uma entrada da verificação de conexão anterior do bloco intermediário na próxima verificação de conexão do bloco intermediário. Isso permite que o bloco seja seguido por mais dele mesmo.
Não permitir blocos intermediários
Para criar um conjunto de blocos ordenados em que os blocos do meio são opcionais, é necessário incluir pelo menos uma entrada da verificação de conexão anterior do bloco do meio e da verificação de conexão anterior do último bloco na próxima verificação de conexão do primeiro bloco. Isso permite que o primeiro bloco seja seguido por um bloco do meio ou um último bloco.
Pilhas de “ou”
Para criar um bloco que só pode ser seguido por blocos de um grupo ou de outro, faça o seguinte:
É necessário incluir pelo menos uma entrada das verificações de conexão anteriores de ambos os grupos na próxima verificação de conexão do primeiro bloco.
É necessário definir as próximas verificações de conexão dos grupos para incluir apenas valores que estão nas verificações de conexão anteriores. Assim, elas só podem ser seguidas por blocos do mesmo grupo.