Skip to main content

Command Palette

Search for a command to run...

Fundamentos de Programação com Dart | #1

Introdução a variáveis

Updated
6 min read
Fundamentos de Programação com Dart | #1

Fala pessoal! Tudo bem com vocês? Espero que sim, por que hoje vamos dar início à um serie que bordaremos os Princípios e os Fundamentos da Programação, e tudo isso aplicando em código Dart.

E já sem perder tempo, vamos dar início começando pela Introdução à Variáveis.

Como você bem sabe, a maioria, se não todos os apps, armazena informações que são usadas para mudar e atualizar conforme você usa a aplicação. Por exemplo, um simples Game armazena dados da sua pontuação, quantidade de pontos de vida e créditos que você possui conforme você vai jogando.

Dessa forma, os apps usam a memória do dispositivo para fazer esse armazenamento e as devidas alterações, seja ele um computador, smartphone ou console. Aprender como usar essa memória, é um ponto essencial para um programador.

A forma mais comum de aproveitar a memória de um computador, e aqui você entenda como qualquer dispositivo que rode um app, é através da criação de variáveis.

Variáveis

Variáveis são apenas espaços, ou containers, que servem para guardar um valor, uma vez que esse espaço é criado ele é armazenado na memória do computador e pode ser utilizado e atulizado diversas vezes no seu app.

Criar uma variável em Dart é bem simples, basta usar a plavra chave var (palavra-chave, já já falamos mais disso) seguida de um rótulo que você deseja usar, que servirá de nome e identificador dessa variável. Aqui você pode se sentir à vontade para escolher o nome dessa variável, mas é recomendado que seja dado um nome descritivo, assim ficará mais fácil a leitura do código. O proprio Dart também nos fornece algumas práticas para ajudar a nomear melhor nossas variáveis, como por exemplo:

  • começar sempre com letras e em minúsculo;

  • sempre usar camelCase para nomes compostos;
    exemplos:
    var minhaVariavel = 'variavel';
    var minhaOutraVariavel = 2;

  • evitar nomes com separadores;

    • exemplo: var minha_variavel = 2;
  • não usar as palavras-chave da linguagem;

    • exemplo: var var ='variável';

Começou!

Agora voltando lá no exemplo do Game, vamos usar variáveis para armazenar o nossa pontuação, pontos de vida e os créditos no game.

Iniciando por nossa pontuação, então podemos "declarar" uma variável com o nome score e vamos "assinar/iniciar" um valor inicial 0 (Zero) que será atualizado conforme necessário. Feito isso, partimos para os ponto de vida, que aqui vou iniciar com o valor 100 (cem) representando 100% de vida. Lembrando sempre dos rótulos/nomes das variáveis pois vamos precisar deles para atualizar seus valores.

Nesse caso nomearei com as palavras em inglês, por preferir seguir um padrão, já que as palavras-chave da linguagem está semanticamente em inglês. Mas nada impede de fazer em português, caso prefira, pode seguir com os respectivos nomes pontuacao e pontosDeVida

var score = 0;
var healthPoints = 100;

Para atualizar os valores das variáveis basta reassinar a variável desejada com um novo valor, e dessa vez basta chamar a variável pelo nome e atrinuir um novo valor, sem a necessidade da keyword (palavra-chave) var.

score = 10;
healthPoints = 95;

Contextualização

Acima vimos palavras como declarar, assinar e iniciar. Isso significa o seguinte. Ao declarar uma variável, estamos criando de fato um novo espaço na memória do computador, usando a estrutura de sintaxe:
[paravra-chave] [rótulo/nome]
var minhaVariavel;

Assinar ou iniciar é atribuir um valor para essa variável armazenar memoria. A diferença seria que geralmente usamos o termo "iniciar" para atribuir o valor à variável no momento da declaração:
[palavra-chave] [rótulo/nome] [sinal de atribuição] [valor]
var minhaVariavel = 'valor string';

Já assinar é qualquer momento que atribuimos um valor à variável, seja para iniciar um valor ou para atualizar. Por exemplo:
Inicialização direta
var minhaVariavel = 'valor string';
atualização do valor (reassinar)
minhaVariavel = 'Novo valor';

Declaração sem iniciar com valor
var minhaOutraVariavel;
inicializando com um valor
minhaOutraVariavel = 'outro valor';
atualizando com um novo valor
minhaOutraVariavel = 'novo outro valor';

Outro ponto importante para se notar é o 'sinal de atribuição' repesentado pelo sinal de igualdade ( = ). Contrário ao comum, ele não faz referencia de igualdade, como: "pontosDeVida [é igual a] 100" | var pontosDeVida = 100;
No caso esse sinal faz referencia de atribuição, ou seja:
"pontosDeVida [recebe o valor] 100" | var pontosDeVida = 100;

Mão na massa

Agora vamos ver o Dart lidando com as variáveis. Nesse ponto temos duas opções: Primeiro seria realizar o setup do nosso ambiente de desenvolvimento em nossa máquina local, ou usar o DartPad, que é um playground Dart, ou seja, é um ambiente de desenvolvimento online.

Para esses primeiros contatos recomendo usar o dartpad mesmo, pois vai lhe economizar um tempo, mesmo que o dartpad tenha suas limitações, nesses primeiros exemplos não vamos usar tudo até chegar no limite dela. Não por enquanto.

Para usar o dartpad basta abrir o Browser e navegar para o endereço https://dartpad.dev e você terá a seguinte interface:

Pode apagar tudo que está escrito na secção da esquerda, onde está o código, e colar o código abaixo, logo depois pode clicar no botão "Run" e esperar a execução do código:

void main() {
    var minhaVariavel;
    minhaVariavel = 'Nova Variável';

    print(minhaVariavel);
}

Note que no lado direito, apareceu o texto que está assinado em nossa variável. Esse espaço é o debug console, e é ai que são apresentados os logs da execução do app. Como não temos nenhuma mensagem de erro, isso significa que tudo ocorreu bem!

Note ainda que há uma linha azul sublinhando o nome da variável. No canto inferior esquerdo, agora está um modal com um warning, no qual a mensagem traduzida indica que "uma variável não inicializada deve ter uma anotação de tipo".

Se agora invés de assinar o valor da variável na linha seguinte, e já iniciar o valor durante a declaração podemos notar que o warning desaparece:

Isso é um dos pontos fortes do Dart, como ele fornece um compilador que tanto analisa o código, durante o tempo de execução do app, ele também faz a análise antes do tempo de execução (compilações JIT Just in Time, e AOT Ahead of Time) e faz com que os programadores consiga ver possíveis erros e otimisações de código enquanto está desenvolvendo, invés de precisar compilar e executar o app para poder detectar esses pontos.

Próximos passos

Antes de continuarmos para os próximos conseitos dos Fundamentos de programação, vou deixar algums challenges como prática do que foi visto nesse tópico.

No código existente, tente criar novas variáveis, como score, life e gold. Crie e inicialise com seus devidos valores.

Bônus: Tente fazer com que o programa mostre os valores das variáveis no debug console.

No Próximo tópico vamos explorar os tipos de variáveis e a estrutura de nosso app. Entender o papel do main(), print() etc