Article image
Andrew Oliveira
Andrew Oliveira03/07/2024 15:19
Compartilhe

Introdução a Linguagem Dart

  • #Dart

DART

Esta publicação é uma introdução inicial simples à linguagem Dart, baseada no estudo que estou realizando. Todos os conceitos e exemplos aqui apresentados foram primeiramente documentados no Notion. O conteúdo está aberto para sugestões e melhorias, e você pode acessá-lo e contribuir através do seguinte link: https://www.notion.so/DART-10e51f692af644329653e57c1bbfe11d?pvs=4

Baindo SDK DART

Acesse o Site oficial, baixe e instale

https://dart.dev/tools/sdk

Criando seu primeiro projeto em Dart

#Para criar um novo projeto em Dart, use o seguinte comando no terminal:

dart create <NOME_DIRETORIO>

#Exemplo
dart create meu_app

#Acessar diretorio
cd meu_app

#Executar app
dart run

image

#Depois de criar o projeto, a estrutura de diretórios será a seguinte:

.dar_tool = Guarda informações específicas para a execução do Dart.


bin = Onde fica o arquivo principal para ser executado.


lib = Onde ficam os arquivos da aplicação, serviços, repositórios, etc.


test = Onde são feito os testes;


.gitignore = Arquivos a serem ignorados ao carregar no git.


analysis_options.yaml = Analisa o código e fornece sugestões.


CHANGELOG.md = Arquivo para registrar alterações e evolução do projeto.


pubspec.lock = Configuração do projeto, como versão, SDK, pacotes.


README.md =  Documento de apresentação do projeto.

TIPOS DE DADOS

image

DECLARAÇÃO DE VARIÁVES

void main() {

int numero1 = 1;  // Declaração com tipo
var numero2 = 2;  // Declaração sem tipo (inferência)
int numero3;      // Declaração sem valor inicial

}

FUNÇÕES BÁSICAS 

print() #Utilizada para imprimir mensagens no console.


print('Hello, World!');

-------------

main() #Função principal que é o ponto de entrada de um programa Dart.


void main() {
print('Hello, World!');
}

-------------

toString() #Converte um objeto em uma string.


int number = 42;
String numberStr = number.toString();

--------------

isEmpty e isNotEmpty #Verifica se uma string ou lista está vazia.

String text = '';
if (text.isEmpty) {
print('String está vazia');
}


FUNÇÕES DE COLEÇÕES

.forEach() #Itera sobre cada elemento de uma coleção.

var list = [1, 2, 3];
list.forEach((item) {
print(item);
});

=====================

.map() #Aplica uma função a cada elemento de uma coleção e retorna uma nova lista.

var list = [1, 2, 3];
var doubled = list.map((item) => item * 2).toList();

===============

.where() #Filtra elementos de uma coleção com base em uma condição

var list = [1, 2, 3, 4];
var evens = list.where((item) => item % 2 == 0).toList();

===================

.reduce() #Combina todos os elementos de uma coleção em um único valor.

var list = [1, 2, 3, 4];
var sum = list.reduce((value, element) => value + element);

===============

.sort() #Ordena os elementos de uma lista.

var list = [3, 1, 4, 1, 5, 9];
list.sort();

===================

.isEmpty #comparação se vazio

String texto1 = "Oi";
print(texto1.isEmpty);

#retorna True ou False

===================

.length #Obtem tamanho da String

String texto1 = "Oi";
print(texto1.length); //2

#retorna quantidade de caractere

=================

# Convertem uma string para letras maiúsculas ou minúsculas.
.toUpperCase() #para letra maiuscula
.toLowerCase() #para letra minuscula

String palavra = "Teste";
print(palavra.toUpperCase()); 
print(palavra.toLowerCase()); 

===================

#Verifica se uma string contém outra string.
.contains()

String texto1 = "Teste de palavras";
String texto2 = "Teste de outras palavras";

print(texto2.contains(texto1));

==================

#Obtem parte de uma String
.substring()


String texto1 = "Teste de palavras";
print(texto1.substring(3));
print(texto1.substring(3, 5));

==================

#Obtém a posição de uma substring em uma string.
.indexOf()


String texto1 = "Teste de palavras";
print(texto1.indexOf("de"));
print(texto1.indexOf("vras"));

==================

#Substitui todas as ocorrências de uma substring por outra.
.replaceAll("x", "y");


String texto1 = "Teste de palavras";
print(texto1.replaceAll("a", "x"));

=================

#Divide uma string em uma lista com base em um caractere específico.
.split();


String texto1 = "Teste de palavras";
print(texto1.split("a"));
#retona [Teste de p, l, vr, s]

ou 

print("NOME;ENDERECO;CEP".split(";"));
#Retorna [NOME, ENDERECO, CEP]

===============================

#Removem espaços em branco de uma string.
.trim(); #remove todos os espaços
.trimLeft(); #Remove espaços a esquerda
.trimRight(); #Remove espaços a direita

TIPOS DE DADOS LISTAS e FUNÇÕES

void main(List<String> argumentos){

  List<String> lstString = []; # Setar ela utilizando o tipo, iniciand como vazio
  var lstInt = [1, 2, 3];  #inicializar ela preenchida, entendendo q sao inteiros
  List lstDynamic = [];  #Incializa ela dinâmica sem tipo e vazio

  ==============

  #saber tamanho da lista
  .length()
  print("Tamanho da Lista");
  print(lstString.length);
  print(lstInt.length);
  print(lstDynamic.length);

  ================

  #adicionar item a lista de acorco om seu tipo
  .add()
  lstString.add("M");
  lstString.add("B");
  lstInt.add(90);
  lstDynamic.add("A");
  lstDynamic.add(10);
  lstDynamic.add(9.5);
  lstDynamic.add(true);
  
  ===========

  #Remover item
  .remove();
  lstString.remove("M");
  lstInt.remove(90);
  lstDynamic.remove(9.5);

  ==============

  #Verifica se a lista esta vazia
  .isEmpty #Verifica se esta vazia e retorna True ou Flse
  .isNotEmpty #Verifica se não esta vazia e retorna True ou Flse
  print(lstString.isEmpty); 
  print(lstString.isNotEmpty);

  ==============

  #Verifica se conteem na lista e retorna true ou false
  .contains();
  var lstInt = [1, 2, 3];
  print(lstInt.contains(2)); // true

  ==============

  #Verifica e retorna uma condicional
  .where
  print(lstInt.where((x) => x > 9 && x < 99)); #me retorne itens maiore que 9 e menores q 99

  =============

  #Inverte posição da lista
  .reversed
  var lstInt = [1, 2, 3];
  print(lstInt.reversed.toList()); // [3, 2, 1]
}

TIPOS DE DADOS MAP

void main(List<String> arguments){

  Map<String, dynamic> map1 = Map<String, dynamic>(); #Cria dado MAP do tipo String: Dynamic
  var map = {'zero': 0, 'one': 1, 'two': 2};

  print(map1);
  print(map);

  #pega valor pela chave
  print(map["one"]);

  #Adiciona múltiplos pares chave/valor ao mapa.
  map.addAll({'ten': 10, 'eleven': 11})

  #Verifica se uma chave está presente no mapa.
  print(map.containKey("eleven"));

 
}

TIPO DE DADO CONSTANTE

void main(List<String> arguments){

  const String variavel = "ABC"; //Variavel imutável 

}

TIPO DE DADO DINÂMICO

void main(List<String> arguments){

  dynamic var1 = "ABC" // permitido, var1 agora é um int

}

TIPO DE DADO DateTime

void main(List<String>arguments) {

      DateTime data1 = DateTime.now();
      data1 = DateTime.parse("2022-02-01 00:00:00");

      #partes de uma data
      print(data1);
      print(data1.day);
      print(data1.month);
      print(data1.year);
      print(data1.hour);
      print(data1.minute);
      print(data1.second);

      #dia da semana
      print(data1.weekday);

      #soma das datas
      print(data1.add(Duration(days:1))); #adiciona um dia
      print(data1.subtract(Duration(hours:1)));  #remove 1 hora

      #comparacao de data
      var data2 = DateTime.parse("2022-02-01 00:00:00");
      print(data1.isAfter(data2));  #compara se a data1 eh dps da data2
      print(data1.isBefore(data2)); #compara se data1 eh antes de data2
      print(data1.compareTo(data2)); #Compara se eh antes, igual ou depois (-1, 0, 1)

}

MONTAR FUNÇÕES EM DART

int calculate(){

  return 16 * 7;

}

ORIENTAÇÃO A OBJETO

class Carro {

  int _rodas = 0;
  String _cor = "";
  Carro(String cor, int rodas) {
      this._cor = cor;
      this._rodas = rodas;
  }

}

TRATAMENTO DE EXCEÇÕES

try {
  var a = 10 / 0;
} catch (e) {
  print("Erro: $e");	
}
Agradeço por ler esta introdução à linguagem Dart. Espero que tenha achado útil e interessante. Se você tiver alguma sugestão ou encontrar algo que possa ser melhorado, por favor, sinta-se à vontade para contribuir através do link fornecido. Sua participação é muito valiosa!
Compartilhe
Comentários (0)