Executando verificação de segurança...
1

Variáveis em Dart e uso básico do null safety


No Dart temos duas maneiras básicas para inicializar uma variável. Se escolhermos usufruir do null safety, precisaremos colocar um question-mark (?) logo após o tipo declarado, o que adiciona a possibilidade da variável receber um valor null.

String? nome;
nome = 'Afonso';
print(nome); // Retorno: Afonso

int? idade;
print(idade); // Retorno: null

Toda variável tem um tipo anulável, inclusive as classes que criamos.

...

MyObject? obj;
obj = MyObject('Objeto');
print(obj.name); // Retorno: Objeto

...

class MyObject {
  String name;

  MyObject(this.name);
}

Observação: Basicamente tudo no Dart são objetos, inclusive números como a classe int

Ponto importante

Se o null safety estiver ativo, será necessário iniciar a variável antes de utilizá-la.

...
MyObject? obj;
print(obj.name); // Retorno: Error: Property 'name' cannot be accessed on 'MyObject?' because it is potentially null.
...

class MyObject {
  String name;

  MyObject(this.name);
}

No entanto …

O analisador do Dart consegue identificar em vários momentos se a variável em questão foi iniciada antes de ser utilizada ou não. Tornando possíveis as situações como a abaixo:

String endereco;
endereco = "Rua das Oliveiras";
print(endereco);

Nos momentos onde o analisador não consegue verificar se a variável estará atribuída com algum valor válido (não nulo), mas nós temos certeza de que naquele momento ela já estará iniciada, precisamos colocar um exclamation mark (!).

String mensagem = "Seja bem vindo " + user!.name;
print(mensagem); // Retorno: Seja bem vindo fulano

PS: O TabNews ainda não identifica a linguagem Dart. Estou utilizando JS para as linhas de código.

Carregando publicação patrocinada...