Guia da linguagem dart \| TreinaWeb               Promoção no ar   Matricule-se agora e garanta **54% de desconto**  

  Termina em   Tempo restante da oferta: 06 Horas 

 13 Min 

 14 Seg 

   Tempo restante da oferta: 06 13 14 

  [Assinar →](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26) 

   [                ](https://www.treinaweb.com.br)  Explorar  

 [ Quanto custa? ](#assinatura) [ FAQ ](https://www.treinaweb.com.br#faq) [Matricule-se](#assinatura) [ Entrar ](https://www.treinaweb.com.br/login) 

     [ Início ](https://www.treinaweb.com.br) [ Artigos ](https://www.treinaweb.com.br/blog) Guia da linguagem dart  [ Dart ](https://www.treinaweb.com.br/blog/categoria/dart) [ Guias ](https://www.treinaweb.com.br/blog/categoria/guias) 

# Guia da linguagem dart

 Nesse guia da linguagem Dart você aprenderá o necessário para criar os seus primeiros softwares com a linguagem de programação Dart.

 [ Ariel Sardinha ](https://www.treinaweb.com.br/blog/autor/ariel-sardinha) 4 anos atrás

  ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/11/ARTIGO-DART.jpg)  

Nesse guia da linguagem Dart você aprenderá o necessário para criar os seus primeiros softwares com a linguagem de programação Dart.

O Dart é uma linguagem de programação fortemente tipada criada pela Google em 2011. A missão inicial do Dart era substituir o [JavaScript](https://www.treinaweb.com.br/blog/o-que-e-e-como-comecar-com-javascript/ "JavaScript") para desenvolvimento de scripts em páginas web. Porém, com a evolução da linguagem e com o passar dos anos, ela hoje pode ser considerada uma linguagem multi-paradigma, embora a linguagem apresente fortes estruturas típicas de linguagens orientadas a objeto.

Hoje, sabemos que o Dart não obteve muito sucesso em sua missão inicial em substituir o JavaScript nos navegadores. Porém, o desenvolvimento e posterior sucesso do [Flutter](https://www.treinaweb.com.br/blog/o-que-e-flutter/ "Flutter"), que é fundamentado no Dart, fez com que a linguagem voltasse à tona, atraindo a atenção de muitos desenvolvedores.

Para ver mais detalhes sobre o Dart recomendo a leitura do nosso artigo: “[O que é Dart?](https://www.treinaweb.com.br/blog/o-que-e-dart "O que é Dart?")”

## Como instalar o Dart e executar seu primeiro exemplo

Agora que já sabemos o que é o Dart e suas principais características, estamos prontos para realizar a instalação e executar o nosso primeiro exemplo com a linguagem e para isso basta baixar o Dart SDK.

O Dart SDK possui as bibliotecas e ferramentas de linha de comando que você precisa, então acesse o [Link](https://dart.dev/get-dart/archive "Link") para fazer o download do SDK.

Temos um artigo com as explicações de como instalar, em todos os sistemas operacionais, basta ler o artigo: “[Como instalar o Dart e executar seu primeiro exemplo](https://www.treinaweb.com.br/blog/como-instalar-o-dart-e-executar-seu-primeiro-exemplo "Como instalar o Dart e executar seu primeiro exemplo")”.

## Conhecendo variáveis e constantes

Toda linguagem de programação possui uma tipagem, que é basicamente um conjunto de regras que as define como [estática, dinâmica e forte ou fraca](https://www.treinaweb.com.br/blog/quais-as-diferencas-entre-tipagens-estatica-ou-dinamica-e-forte-ou-fraca/ "estática ou dinâmica e forte ou fraca").

O Dart é uma linguagem de tipagem estática e fortemente tipada, então ele tem tipos bem definidos que são validados durante a compilação e não realiza conversões automáticas de tipo.

Os tipos de dados no Dart são classes que herdam da classe `Object` fazendo um açúcar sintático para definir seus tipos.

Um pequeno exemplo é o tipo `int` ou `double`, eles são classes que herdam de `num` que por sua vez herda da classe `Object`.

- **int:** O tipo inteiro é representado por toda e qualquer informação numérica que pertença ao conjunto de números inteiros relativos (números positivos, negativos ou o zero).
- **double:** O tipo double é representado por números decimais, ou seja, números que possuem partes fracionadas.
- **String:** String é uma cadeia de caracteres que representam textos.
- **bool:** Variáveis booleanas armazenam valores lógicos que podem ser verdadeiro ou falso.

A declaração de variáveis no Dart é um processo muito simples, você pode definir primeiro o tipo da variável, seguido do nome e seu valor:

```dart
String variavel = "valor_da_variavel"

```

Ou utilizar a palavra reservada “var” e utilizar a inferência de tipos:

```dart
var variavel = "valor_da_variavel"

```

Também temos a `const` e `final`, que sob um ponto de vista prático são como variáveis, só que com o ponto de que seu valor não pode ser modificado. Isso quer dizer que, se você declara uma constante chamada MaioridadePenal com o valor 18, esse valor não poderá ser jamais modificado

```dart
final variavel = "valor_da_variavel"

const variavel = "valor_da_variavel"

```

No exemplo a cima vai haver inferência de tipo, mas podemos declarar seus tipos dessa forma:

```dart
final String variavel = "valor_da_variavel"

const String variavel = "valor_da_variavel"

```

E caso você esteja com dúvidas de qual é a diferença entre o `final` e `const`, visto que ambas são palavras reservadas que deixam seu valor inalterável, é porque o `final` é inicializado em tempo de execução, já o `const` é em tempo de compilação e isso interfere na regra de negócio da sua aplicação.

No artigo [Conhecendo variáveis e constantes no Dart](https://www.treinaweb.com.br/blog/conhecendo-variaveis-e-constantes-no-dart "Conhecendo variáveis e constantes no Dart"), podemos nos aprofundar no uso de constantes e ver mais exemplos e explicações sobre o uso de variáveis.

[  ![Dart - Fundamentos](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/dart.svg)   Curso Dart - Fundamentos Conhecer o curso ](https://www.treinaweb.com.br/curso/dart-fundamentos)

### Estrutura de dados no Dart

No Dart, podemos utilizar diversos tipos de estruturas de dados. Estas estruturas resolvem um tipo de problema e podem ser úteis em diversas situações. As principais estruturas são as `List`, `Map` e `Set`.

Uma lista é a estrutura de dados mais básica do Dart. Sua estrutura permite armazenar dados em sequência, onde cada elemento possui sua posição de origem, sendo o primeiro elemento armazenado no índice zero e, a cada elemento novo, o índice é incrementado.

Podemos criar listas da seguinte forma:

```dart
final List myList = [1,2,3,3];

```

Para ver mais detalhes sobre listas, recomendo a leitura do artigo “[Manipulando listas no Dart](https://www.treinaweb.com.br/blog/manipulando-listas-no-dart "Manipulando listas no Dart")”

Os mapas são coleções de dados organizados em um formato chave-valor. Cada elemento inserido em um mapa no Dart possui uma chave a ele relacionado. Os mapas são estruturas muito úteis quando precisamos relacionar cada elemento com um identificador único.

```dart
final Map myMap = {'usuario':'admin','senha':123};

```

Para ver mais detalhes sobre mapas, recomendo a leitura do artigo “[Manipulando mapas no Dart](https://www.treinaweb.com.br/blog/manipulando-mapas-no-dart "Manipulando mapas no Dart")”

Os sets são uma coleção de itens desordenada, parcialmente imutável e que não podem conter elementos duplicados.

```dart
final Set mySet = {1, 2, 3, 4};

```

Note que o `Set`, diferente do `Map`, não possui chave valor e diferente de uma lista ele não ordena por indice e não tem valores repetidos, porque ele simplesmente ignora.

## Estruturas condicionais e estruturas de repetição

Estruturas de condição são artifícios das linguagens de programação para determinar qual bloco de código será executado a partir de uma determinada condição. No Dart, assim como em outras linguagens, podemos trabalhar com as [estruturas de condição](https://www.treinaweb.com.br/blog/estruturas-condicionais-e-de-repeticao/ "estruturas de condição") utilizando o if/else e o switch/case como veremos abaixo.

Abaixo temos um exemplo simples da utilização do `if/else`. Nele verificamos se a pessoa é maior ou menor de idade, dependendo do valor que conter na variável idade.

```dart
void main() {
  var idade = 18;
  if (idade < 18) {
    print("Você é menor de idade");
  } else {
    print("Você é maior de idade");
  }
}

```

As estruturas de repetição, também conhecidas como loops (laços), são utilizadas para executar repetidamente uma instrução ou bloco de instrução enquanto determinada condição estiver sendo satisfeita. As principais estruturas de repetição são o `for` e o `while`.

Vejamos um exemplo abaixo utilizando o `for`. No exemplo, estamos criando um intervalo de 1 a 10 e verificando os números dentro deste intervalo que são pares (resto da divisão deste número por 2 é igual a 0)

```dart
void main() {
  for (int numero = 1; numero
