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)