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
#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
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!