Importações
Vamos desvendar a arte de importar arquivos e bibliotecas no FatScript! Por quê? Bem, porque nesta linguagem você pode importar sempre que seu coração desejar, simplesmente usando uma seta para a esquerda <-
.
Sintaxe de ponto
Para usar importações com sintaxe de ponto, o nome dos arquivos e pastas do projeto não deve começar com um dígito ou conter símbolos.
você pode forçar qualquer caminho que desejar usando caminhos literais
Importação nomeada
Para importar arquivos, use a extensão .fat
para os nomes de arquivo (ou nenhuma extensão), mas omita a extensão na declaração de importação. Aqui está um exemplo:
ref <- nomeDoArquivo
se ambos os arquivos
x
ex.fat
existirem, este último terá precedência
Para importar arquivos de pastas, use a seguinte sintaxe:
ref1 <- pasta.nomeDoArquivo
ref2 <- past.subPasta.nomeDoArquivo
Para importar todos os arquivos de uma pasta, use a sintaxe de ponto-sublinhado:
lib <- folder._
Observe que somente os arquivos imediatamente dentro da pasta serão incluídos com essa sintaxe. Se você precisar incluir arquivos de subpastas, deverá incluí-los explicitamente.
Além disso, você pode adicionar um arquivo "_.fat" (ou arquivo "_") dentro de uma pasta para substituir o comportamento de importação de ponto-sublinhado.
Acesso de elementos
Após a importação, você também pode acessar elementos com sintaxe de ponto:
ref1.elemento1
Extração de elementos
Se você precisar apenas de elementos específicos de uma importação nomeada ou preferir não sempre antepor o nome do módulo ao acessá-los, por exemplo, lib.foo
, você pode usar atribuição por desestruturação para extrair os elementos para o namespace atual:
{ foo, bar } = lib
Importações locais
Você também pode fazer importações no escopo atual usando um sublinhado, assim:
_ <- nomeDoArquivo
As importações locais diferem das importações nomeadas no sentido de que o conteúdo do arquivo é diretamente "despejado" no escopo atual. Isso significa que você pode chamar um método importado diretamente, como baz(arg)
, em vez de usar ref.baz(arg)
.
Embora as importações locais sejam mais adequadas para importar tipos no escopo global, elas devem ser usadas com cautela ao importar conteúdo de biblioteca. O uso excessivo de importações com escopo pode levar a poluição do namespace, o que pode tornar mais difícil seguir o código, porque fica menos evidente de onde vêm os métodos.
Caminhos literais
Com caminhos literais, você pode usar qualquer nome de arquivo ou extensão. No entanto, observe que essas importações não são avaliadas durante o empacotamento, mas em tempo de execução. Aqui está um exemplo:
ref <- '_pasta/fonte-2.outro'
Você também pode usar textos inteligentes como caminhos literais:
base = 'pasta'
arquivo = 'fonte.xyz'
ref <- '{base}/{arquivo}'
Como o FatScript também aceita sintaxe semelhante a JSON, você pode até mesmo carregar um arquivo JSON diretamente como uma importação:
json <- 'sample/data.json'
Lembre-se de que caminhos literais podem tornar seu código mais complexo e essas importações só podem ser resolvidas dinamicamente, então use-as com moderação.
Política de importação
O FatScript segue uma "política de importação única" que define uma flag no escopo atual para evitar a importação do mesmo arquivo várias vezes. Se uma declaração de importação for encontrada para um arquivo que já foi importado, ela será ignorada de forma transparente.
No entanto, se você importar um arquivo dentro do corpo de um método, a declaração de importação será executada cada vez que o método for chamado.