Guia de Referência: Módulos
Tudo o que você precisa saber para dominar a lógica e os símbolos do logicabr.dev.
Aulas detalhadas passo a passo com ilustrações, teorias e exercícios resolvidos.
Bibliotecas e Módulos
O que é uma biblioteca? No mundo real da programação, ninguém tem tempo para reinventar a roda todos os dias. Uma Biblioteca (ou módulo) é um pacote de código pronto que resolve um problema específico. Pense nelas como a caixa de ferramentas de um mecânico: você não precisa criar uma chave de fenda do zero, apenas pega uma pronta e usa.
Por que quebrar o código em partes menores? Quando os sistemas crescem, tentar ler arquivos de texto com milhares de linhas se torna caótico. Separar seu código em abas menores (módulos) ajuda a sua mente a focar em um problema por vez, facilita encontrar as linhas corretas num teste, e o mais importante: blinda o sistema (um erro na tela de pagamentos não corrompe a tela de login, por exemplo).
A Biblioteca Nativa Integrada: Util
Seu ambiente já possui a caixa de ferramentas Util embutida, pronta para uso sem a necessidade de criar a aba na mão. Ela contém ações de base da computação:
Util.sorteia(1, 10): Sorteia aleatoriamente um número inteiro entre o valor de início e fim. Perfeito para simular eventos de jogos ou imprevisibilidades físicas.Util.aguarde(1000): Trava a execução do programa exatamente na linha por uma quantia MÍNIMA de milissegundos (1000ms = 1 segundo). Ideal para animações e, principalmente, loops de monitoramento infinitos que, se soltos, queimariam a CPU travando todo o navegador.
Quanto tempo um programa pode rodar: com Util.aguarde() (ou esperando uma entrada()) dentro do laço, ele roda por até 10 minutos, e o botão Parar mostra há quanto tempo está rodando. Um laço sem nenhuma pausa é interrompido depois de 15 segundos, porque quase sempre é um loop infinito por engano.
Exemplo Tutorial: Sensor de Temperatura em 3 Passos
Abaixo, criaremos uma arquitetura robótica em 3 abas diferentes! Abstraindo primeiro os alertas, depois a análise da temperatura, e por fim o ciclo principal de leitura na fábrica. Isso ilustra o poder prático dos módulos.
Passo 1: Crie uma nova Aba na IDE rotulada como Aviso
Esta é a nossa "Caixa de Alertas". Ela recebe os códigos e se encarrega exclusivamente de exibi-los. É o nível mais isolado da arquitetura.
Passo 2: Crie outra Aba rotulada como Sensor
Este é o "cérebro" lógico. Ele importa o Aviso, toma decisões baseadas no número de graus lidos, mas repassa o trabalho de exibir mensagens de volta para a outra aba e retorna a ação de parada para o ciclo principal.
Passo 3: Volte para a Aba principal de execução: main
Aqui centralizamos tudo! O loop infinito não sabe COMO processar avisos ou checar a temperatura exata, ele simplesmente sorteia números e delega a complexidade aos dois módulos anteriores. O descanso ocorre via Util.aguarde().
Variáveis e funções entre abas
Funciona como os módulos das linguagens profissionais (o import do JavaScript e do Python):
- Cada aba roda uma vez só. Se o programa e outra aba incluem a mesma aba, os dois usam a mesma aba: mudar
VARIAVEIS.saldonum lugar muda para todos, em qualquer nível. - Use sempre o nome da aba na frente:
VARIAVEIS.saldo,CAIXA.depositar(10). Cada aba tem as suas variáveis; duas abas podem ter variáveis com o mesmo nome sem se misturar. - Quem usa, inclui. Se a aba
CAIXAmexe emVARIAVEIS.saldo, ela também precisa deinclua VARIAVEISno começo. Uma aba não enxerga as variáveis do programa principal. - O tipo vale em qualquer aba.
VARIAVEIS.opcao = entrada("Opção?")guarda um número seopcaofoi declarada comonumero. - Uma aba não pode incluir a si mesma, nem por um caminho (A inclui B, B inclui A). Se duas abas precisam das mesmas coisas, coloque essas coisas numa terceira aba.
Se algo estiver errado, a mensagem diz em qual aba e em qual linha, e sugere o nome certo quando você digita um nome que a aba não tem.