Programação Dart - Variáveis

Uma variável é “um espaço nomeado na memória” que armazena valores. Em outras palavras, ele atua como um contêiner para valores em um programa. Os nomes das variáveis ​​são chamados de identificadores. A seguir estão as regras de nomenclatura para um identificador -

  • Os identificadores não podem ser palavras-chave.

  • Os identificadores podem conter letras e números.

  • Os identificadores não podem conter espaços e caracteres especiais, exceto o sublinhado (_) e o cifrão ($).

  • Os nomes das variáveis ​​não podem começar com um número.

Sintaxe de tipo

Uma variável deve ser declarada antes de ser usada. O Dart usa a palavra-chave var para fazer o mesmo. A sintaxe para declarar uma variável é a seguinte -

var name = 'Smith';

Todas as variáveis ​​no dart armazenam uma referência ao valor em vez de conter o valor. A variável chamada nome contém uma referência a um objeto String com um valor de “Smith”.

Suportes de dardo type-checkingprefixando o nome da variável com o tipo de dados. A verificação de tipo garante que uma variável contenha apenas dados específicos para um tipo de dados. A sintaxe para o mesmo é fornecida abaixo -

String name = 'Smith'; 
int num = 10;

Considere o seguinte exemplo -

void main() { 
   String name = 1; 
}

O snippet acima resultará em um aviso, pois o valor atribuído à variável não corresponde ao tipo de dados da variável.

Resultado

Warning: A value of type 'String' cannot be assigned to a variable of type 'int'

Todas as variáveis ​​não inicializadas têm um valor inicial nulo. Isso ocorre porque o Dart considera todos os valores como objetos. O exemplo a seguir ilustra o mesmo -

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

Resultado

Null

A palavra-chave dinâmica

Variáveis ​​declaradas sem um tipo estático são declaradas implicitamente como dinâmicas. As variáveis ​​também podem ser declaradas usando a palavra-chave dynamic no lugar da palavra-chave var.

O exemplo a seguir ilustra o mesmo.

void main() { 
   dynamic x = "tom"; 
   print(x);  
}

Resultado

tom

Final e Const

o final e constpalavras-chave são usadas para declarar constantes. O Dart evita a modificação dos valores de uma variável declarada usando a palavra-chave final ou const. Essas palavras-chave podem ser usadas em conjunto com o tipo de dados da variável ou em vez dovar palavra-chave.

o constpalavra-chave é usada para representar uma constante de tempo de compilação. Variáveis ​​declaradas usando oconst palavras-chave são implicitamente finais.

Sintaxe: palavra-chave final

final variable_name

OU

final data_type  variable_name

Sintaxe: const Palavra-chave

const variable_name

OU

const data_type variable_name

Exemplo - palavra-chave final

void main() { 
   final val1 = 12; 
   print(val1); 
}

Resultado

12

Exemplo - const Keyword

void main() { 
   const pi = 3.14; 
   const area = pi*12*12; 
   print("The output is ${area}"); 
}

O exemplo acima declara duas constantes, pi e area, usando o constpalavra-chave. oarea o valor da variável é uma constante de tempo de compilação.

Resultado

The output is 452.15999999999997

Note - apenas constvariáveis ​​podem ser usadas para calcular uma constante de tempo de compilação. Constantes de tempo de compilação são constantes cujos valores serão determinados em tempo de compilação

Exemplo

O Dart lança uma exceção se for feita uma tentativa de modificar as variáveis ​​declaradas com o finalou const. O exemplo abaixo ilustra o mesmo -

void main() { 
   final v1 = 12; 
   const v2 = 13; 
   v2 = 12; 
}

O código fornecido acima irá gerar o seguinte erro como output -

Unhandled exception: 
cannot assign to final variable 'v2='.  
NoSuchMethodError: cannot assign to final variable 'v2=' 
#0  NoSuchMethodError._throwNew (dart:core-patch/errors_patch.dart:178) 
#1      main (file: Test.dart:5:3) 
#2    _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:261) 
#3    _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:148)