1.2. Dart Iniciante: Variáveis

Variável é um local onde se possa armazenar temporariamente algumas informações

1.2. Dart Iniciante: Variáveis

Conceito

Todo dispositivo eletrônico tem memória RAM onde é armazenado dados de forma temporária. O que fica armazenado nessa memória são as variáveis que são pequenas "caixas" onde se pode guardar coisas, portanto podemos dizer que as variáveis são posições ou alocações na memória.

Então, podemos dizer que as variáveis tem um certo ciclo vida, ficam visíveis por um determinado tempo.

Para que serve? 

Dentro dela pode armazenar o que você quiser, números, textos, ou seja, qualquer dado. 

Agora, iremos declarar algumas variáveis de diversos tipos, vejamos:

void main(){ 
  String nome = "Loja Dart"; 
  // Texto sempre em aspas duplas ou simples e declarado como 'String'

  int bananas = 5; 
  // como é número não precisa de aspas

  double preco = 10.5; 
  // para números com vírgula utilizar double, em Dart 2.0 não é mais necessário colocar o ponto
  
  bool aindaTem = true; 
  // bool é um valor verdadeiro  ou falso 

  print("O nome da loja é: $nome"); 
  // para mostrar o que há na variável eu posso colocar $nome como mostrado ou ("o nome da loja é: " + nome)
}

int

É uma variável numérica, porém só aceita números inteiros: 1, 2, 3...

void main() {
  int idade = 35;
  print(idade);
}

Dart é tipado, então você "tem" que declarar o tipo da variável. Desta forma, a estrutura da variável se comporta da seguinte forma: TIPO VARIÁVEL + NOME VARIÁVEL = VALOR VARIÁVEL

Quando se cria uma variável não é necessário definir o valor da variável, bem como é possível mudar o valor já declarado em uma variável:

void main() {
  int idade;
  print(idade);
}

Entretanto, se você não declarar o valor e printá-lo, irá retornar um null. Para corrigir isso, basta inicializá-la:

void main() {
  int idade;

  // Alterando a idade, se eu colocar esta definição após o print, ela não irá mudar
  idade = 30;
  print(idade);
}

num

Num é um tipo de variável que aceita números inteiros (0) ou decimal (Double: 0.0):

void main() {
  num idade;
  
  idade = 30.4;
  print(idade);
  
  idade = 15;
  print(idade);
}

String

É um valor alfanumérico que é definido sempre por meio de aspas simples ou duplas.

void main() {
  String nome = 'Paulo';
  print(nome);
}

Há a possibilidade também de realizar a concatenação nas Strings por meio do operador de concatenação "+":

void main() {
  String nome = 'Paulo' +
    'Roberto' +
    'Pereira';
  print(nome);
}

Porém isso irá retornar: PauloRobertoPereira. Você teria que colocar um espaço nas Strings "Paulo "+"Roberto " para que ele retorne o nome espaçado.

Mas há a possibilidade também de ter uma varável de multiplas linhas utilizando três aspas ''':

void main() {
  String nome = '''Paulo Roberto Pereira,
  String de múltiplas linhas.''';
  print(nome);
}

Ou até mesmo utilizar da seguinte forma:

void main() {
  String nome = 'Paulo Roberto Pereira'
      ' String de múltiplas linhas.'
      ' Muito legal!';
  print(nome);
}

Lembrando que, no caso acima, você deve dar um espaçamento para que não fique tudo junto sem espaços, no início ou fim.

var

Há também uma vantagem em Dart que, caso a variável seja definida, não é necessário especificar o tipo que Dart reconhece tal variável, mas para isso é necessário utilizar o var.

Assim, se eu declarar em var um número, automaticamente ela será um int. Não poderá mudá-la posteriormente para um texto string.

void main(){ 
  var teste = 1;
  print(teste);
}

dynamic

A variável dynamic assume qualquer tipo, podendo alterá-la com qualquer tipo.

void main() {
  dynamic teste = 1; 
  //ela pode ser qualquer tipo de variável e pode ser alterada para um texto sem apresentar erro
}

Tem que ter muito cuidado com o dynamic, pois pode acontecer de que seu app cresça de mais e lá na frente dê um problema, exemplo, em uma janela do seu app você espera retornar um int, mas o seu dynamic é um String e você esqueceu.

OBS. Você pode utilizar um cast, para mudar uma variável para um tipo específico, porém iremos ver isso mais para frente: teste as int;

Boas práticas em Variáveis

Lower Camel Case

A nomeclatura deve sempre seguir um padrão chamado lower camel case, ou seja, sempre a primeira letra será em minúsculo e as demais palavras tendo a primeira letra em maiúscula:

void main() {
  String nomeCompleto = 'Paulo Roberto Pereira';
  print(nomeCompleto);
}

Se for definido o nome da variável String NomeCompleto, retornará um erro.

Cuidado ao utilizar var

Ao definir uma variável com var o Dart utiliza mais processamento para tentar descobrir que tipo de variável é, portanto sempre tente definir a variável para evitar processamento desnecessário.

Arrays

Ainda iremos ver arrays que basicamente são listas ou maps. Em Lists, você pode tipar a lista da seguinte forma: List listaNumeros = List(); basicamente, estamos informando que a lista a ser apresentada é de inteiros, mas perceba que estou informando que a variável é uma lista de inteiros no início e no fim. Portanto, se você já colocou que é uma lista de inteiros no início não precisa tipar novamente: List listaNumeros = List();

void main() {
  // List listaNumeros = List();
  // não precisa declarar duas vezes o tipo de variável
  List listaNumeros = List();
  listaNumeros = [1, 4];

  print(listaNumeros);
}

Irá retornar: [1, 4]

Para saber todas as boas práticas em Dart, basta entrar no site https://dart.dev/guides/language/effective-dart e ver cada uma delas.

Esta é a primeira aula da série. Está gostando? No próximo artigo iremos aprender operações aritiméticas com variáveis, clique aqui para acessá-lo.