Dart é uma linguagem de programação criada pela Google em 2011, com o objetivo de ser produtiva, ágil e de fácil entendimento. Apesar de ser a linguagem base do framework Flutter, ela pode também ser aplicada em outras circunstâncias, como no Back-end.
Uma linguagem de programação é a forma por onde conseguimos passar instruções para que computadores executem, e é através delas que conseguimos criar softwares, aplicativos, sites, jogos, etc.
void main() { print("Hello, World!"); }
O trecho do código acima apresenta o void main() { }
que é onde chamamos a função inicial do Dart, ou seja, todos os códigos Dart se iniciam nessa função, e precisam estar contidos dentro das chaves {aqui}. O nosso comando irá imprimir Hello, World!
no console.
Você pode testar essa e outras funções Dart aqui.
Tipos de Linguagens de Programação:
- Linguagens de Baixo Nível: Próximas ao código de máquina, mais difíceis de entender (ex: Assembly, C).
- Linguagens de Alto Nível: Mais próximas da linguagem humana, facilitam a programação (ex: Python, Java, Dart).
- Linguagens Compiladas: Precisam ser traduzidas antes da execução (ex: C, C++).
- Linguagens Interpretadas: Executadas linha por linha, sem necessidade de compilação (ex: Python, JavaScript).
- Linguagens Híbridas: Misturam características compiladas e interpretadas (ex: Java, Dart).
As principais características de uma Linguagem de Programação (✨) e como elas funcionam com Dart (🎯):
✨ Sintaxe: É o conjunto de regras que define como o código deve ser escrito;
🎯 Em Dart temos um conjunto de regras para diferentes situações:
//variáveis String nome = "Natasha"; int idade = 30; double altura = 1.75; bool gostaDeFlutter = true;
Variáveis:
- Cada linha termina com
;
(ponto e vírgula).- Usa tipagem flexível, pode ser estaticamente tipado ou dinamicamente tipado.
- Strings usam aspas duplas
""
ou simples''
.
//funções void saudacao(String nome) { print("Olá, $nome!"); } void main() { saudacao("Natasha"); }
Funções:
void
indica que a função não retorna nada.- Argumentos da função são tipados (ex:
String nome
).- O bloco de código fica entre
{}
.
//estruturas de controle void verificarIdade(int idade) { if (idade >= 18) { print("Maior de idade"); } else { print("Menor de idade"); } }
Estruturas de Controle:
- Condições usam
if
,else
eelse if
.- Comparações usam operadores como
>=
,<=
,==
,!=
.
//classes e objetos class Pessoa { String nome; int idade; Pessoa(this.nome, this.idade); void apresentar() { print("Meu nome é $nome e tenho $idade anos."); } } void main() { Pessoa pessoa = Pessoa("Natasha", 30); pessoa.apresentar(); }
Classes e Objetos:
- Classes são definidas com
class
.- Construtores podem usar
this
para atribuir valores diretamente.- Métodos usam
void
ou outro tipo de retorno.
✨ Semântica: O significado por trás das instruções escritas no código;
🎯 Em Dart a semântica é interpretada pelo compilador:
//erro semântico int soma(int a, int b) { return a - b; //erro semântico! era para somar, mas está subtraindo. }
Erro semântico (sintaxe correta, mas lógica errada).
//erro de referência String nome = "Natasha"; print(idade); //erro: "idade" não foi declarada.
O compilador não encontra a variável idade, causando um erro de referência inexistente, ou seja, o código roda sem erro, mas não faz o que deveria.
✨ Paradigmas: Diferentes formas de programar. (ex: Programação Orientada a Objetos, Funcional ou Procedural);
🎯 Dart é Multiparadigma, suportando programação orientada a objetos, funcional e assíncrona.
✨ Compilação ou Interpretação: Algumas linguagens precisam ser compiladas antes de serem executadas, enquanto outras são interpretadas diretamente.
🎯 Dart possui compilação eficiente, podendo ser compilado para código nativo (rodando diretamente no processador) ou para JavaScript (para aplicações Web).
Não é necessário que se aprenda primeiramente Dart para depois aprender Flutter, esse aprendizado pode acontecer simultaneamente. Mas é essencial o aprendizado de Dart para a utilização do Flutter.
Links úteis:
Top comments (0)