$ masmorra_ascii

Item 06 de 10

6. Seu primeiro programa

Criar um arquivo Dart

Abra o editor (VS Code, se instalou no capítulo anterior). Crie uma pasta nova em qualquer lugar que você consiga achar fácil - área de trabalho mesmo serve. Pode chamar de dart-experimentos/ ou só meu-codigo/.

Dentro dessa pasta, crie um arquivo novo chamado ola.dart. A extensão .dart é importante - ela diz ao editor (e ao Dart SDK) que esse arquivo é código Dart, e não texto qualquer.

Escrever as 3 linhas mágicas

Digite (ou cole) exatamente isto:

void main() {
  print('Olá, masmorra.');
}

Salve o arquivo (Cmd+S no macOS, Ctrl+S no Windows/Linux).

Pronto. Você acabou de escrever um programa Dart completo.

Antes de rodar, vamos entender cada palavra:

  • void - significa “não retorna nada”. A função main faz coisas (imprime na tela), mas não devolve nenhum valor para quem a chamou.
  • main - nome especial. Todo programa Dart precisa de uma função chamada main. É o ponto de entrada: quando você manda o Dart rodar o arquivo, é a partir daqui que ele começa.
  • () - parênteses obrigatórios. Funções sempre têm parênteses, mesmo que estejam vazios. Eles vão guardar parâmetros mais tarde.
  • { e } - chaves que delimitam o corpo da função. Tudo entre elas é o que a função faz.
  • print('Olá, masmorra.'); - chama a função built-in print, passando o texto entre aspas. Termina com ponto-e-vírgula, que em Dart marca o fim de uma declaração (como o ponto final no português).

Cinco conceitos em três linhas. Não é pouco.

Rodar

Abra o terminal e navegue até a pasta onde você criou o arquivo. Por exemplo, se o arquivo está em ~/Desktop/meu-codigo/ola.dart:

cd ~/Desktop/meu-codigo

Confirme que o arquivo está lá:

ls
# Deve mostrar: ola.dart

Agora rode:

dart run ola.dart

Aguarde um segundo. O terminal vai imprimir:

Olá, masmorra.

Pronto. Você programou.

Isso pode parecer pequeno - é uma linha de texto numa tela preta. Mas pense no que aconteceu: você descreveu uma instrução para uma máquina, em uma linguagem específica, e a máquina entendeu, executou, e te mostrou o resultado. Esse é exatamente o ciclo que os outros 37 capítulos do livro vão aprofundar. A escala muda; o ciclo não.

Pode comemorar. Levanta da cadeira, anda um pouco, conta pra alguém. Foi um marco.

Modificar e rodar de novo

Volte ao editor. Troque o texto entre as aspas:

void main() {
  print('A masmorra te espera.');
}

Salve. No terminal, rode de novo:

dart run ola.dart

Agora aparece:

A masmorra te espera.

Esse é o ciclo central de todo aprendizado de programação: modifica, roda, observa, modifica de novo. Você vai repetir esse ciclo centenas de milhares de vezes na sua vida de programador. Quanto mais rápido você consegue completar uma volta do ciclo, mais rápido você aprende. Por isso editores com auto-completar e ferramentas como dart run (que evitam compilação manual) existem.

Experimente:

  • Imprimir múltiplas linhas com vários print() em sequência.
  • Imprimir um número: print(42);
  • Imprimir uma conta: print(2 + 3); - deve mostrar 5.
  • Imprimir uma frase com um número dentro: print('Eu tenho ${20 + 15} moedas'); - vai mostrar Eu tenho 35 moedas.

Cada experimento é um neurônio novo se conectando.

O que cada erro significa

Mais cedo ou mais tarde você vai ver um erro. Provavelmente cedo. Não se assuste - erros são instruções, não veredictos. O Dart sempre tenta dizer exatamente o que está errado e em qual linha.

Esqueceu o ponto-e-vírgula. Você escreve:

void main() {
  print('oi')
}

E recebe:

Error: Expected ';' after this.
  print('oi')
              ^

A seta aponta para o lugar onde o ; deveria estar. Coloque o ;, salve, rode de novo.

Aspas erradas (faltando ou mistas). Você escreve print("oi); (uma aspa dupla, depois fechou só com parêntese). O Dart vai reclamar que esperava aspas dupla para fechar a string.

Parêntese ou chave não fechada. void main() { print('oi'); (sem o } final). Erro: Expected '}' before this.. Conte os abertos e fechados; sempre tem que bater.

Erro de digitação no nome da função. prnit('oi'); em vez de print. O Dart reclama que não conhece nenhuma função chamada prnit. Olhe a sugestão dele - geralmente diz “Did you mean print?”.

Cinco regras práticas para ler erro do Dart:

  1. Leia a primeira linha do erro - é o que aconteceu.
  2. Leia o número da linha - é onde aconteceu.
  3. Olhe a seta - é o caractere exato suspeito.
  4. Se mostra “Did you mean …?”, quase sempre é isso.
  5. Se não souber, copie a primeira linha do erro e pesquise no Google entre aspas. Provavelmente outras 10.000 pessoas tiveram o mesmo erro.

Antes de fechar o terminal

Você acabou de fazer quatro coisas profundas:

  1. Instalou uma linguagem de programação completa no seu computador.
  2. Criou um arquivo de código que segue as regras dessa linguagem.
  3. Escreveu instruções válidas que a máquina aceitou e executou.
  4. Iterou - modificou, rodou de novo, observou a diferença.

Esses quatro passos são exatamente o que programadores profissionais fazem. A escala muda - profissionais escrevem milhares de linhas em vez de três, em times de várias pessoas, com testes automáticos e ferramentas elaboradas. Mas o ciclo essencial - escrever instrução, rodar, observar resultado, ajustar - é exatamente esse.

Tudo daqui em diante é volume e profundidade. O que é programar você já sabe.

$ masmorra_ascii — terminal interativo
Bem-vindo. Digite help para ver os comandos. Esc para sair.
$