Pergunta

Existe alguma maneira de criar programas de linha de comando no modo estrito de Hack?Como o modo estrito do Hack não permite instruções fora de uma função, não posso chamar meu main função.

(Esta é uma questão bastante teórica, pois é fácil contornar o problema tendo um arquivo não estrito para chamar a função principal.)

Foi útil?

Solução

Atualmente não é possível escrever um projeto (programa de linha de comando ou outro) 100% no modo Hack strict devido a esta limitação.Na verdade, você precisará ter algum código de bootstrap no nível superior ("pseudodomínio"), o que o strict atualmente simplesmente não permite.A razão para isso é que o código de nível superior é basicamente impossível de ser verificado estaticamente, já que tudo é global e pode ser alterado nos bastidores a qualquer momento por qualquer código.

No entanto, o resultado final é bobo e é algo que queremos consertar eventualmente - não há, por exemplo, nenhuma razão para impedir uma única chamada para uma função sem parâmetros, ou seja, exatamente o que você precisa para sair imediatamente do pseudoprincipal e entrar em um função.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top