Caderneta Dart — Formato de Funções 2023
- #Flutter
- #Dart
Minhas Anotações
Uma função que executa um comando por exemplo 'print'
deve ser do tipo 'void', caso a função tenha objetivo de
realizar um calculo numérico ou chamar uma String pode
começar com o tipo que espera obter, neste caso deve ter o
comando 'return' para que o valor seja atribuído a função
que irá ser armazenada na função.
--->>>INDICE<<<---
1.Funções Simples
2.Funções com parâmetros
3.Funções tipificada com parâmetros
4.Funções simplificadas usando var
5.Funções simplificadas usando arrow
--->>> Syntaxe e Comandos <<<---
(Tipo) (comando) (nome) (= atribuição) (()Parâmetros) ({}corpo da função) (; fechamento)
(=> arrow)
_________________________________________________________
---->>> Tipos 1 <<<----
//Funções Simples
//1
Function time = () {
print('people');
};
//2
Function way = (int v1, int v2) {
print(v1+v2);
};
//3
Function water = (int g1, int g2) {
return g1 * g2;
};
void main(){
time();
way(3, 6);
print(water(5, 7));
}
________________________________________________________
---->>> Tipos 2 <<<----
// Pode-se acrescentar parâmetros em Function() para deixa-lo mais estável e facilitar a identificação, nos casos que não há variáveis apenas um comando como print os parâmetros não precisam de identificação como no caso 1, e quando há é preciso identifica os tipos no parâmetro de Function(int, int).
//1
Function() time = () {
print('people');
};
//2
Function(int, int) way = (int v1, int v2) {
print(v1+v2);
};
//3
Function(int, int) water = (int g1, int g2) {
return g1 * g2;
};
void main(){
time();
way(3, 6);
print(water(5, 7));
}
________________________________________________________
---->>> Tipos 3 <<<----
//Function pode ser tipificado para estabilização, seguraça e prevenir erros, quando o 'retorn' é um comando como 'print' deve ser do tipo 'Void' EXP1 e EXP2, quando retorna um valor deve ser tipificado de acordo com a variável EXP3.
//Importante destacar que quando Function é tipificado Dart é obriga a incluir os parâmetros, 'Function' ou 'void Function()';
//1
void Function() time = () {
print('people');
};
//2
void Function(int, int) way = (int v1, int v2) {
print(v1+v2);
};
//3
int Function(int, int) water = (int g1, int g2) {
return g1 * g2;
};
void main(){
time();
way(3, 6);
print(water(5, 7));
}
________________________________________________________
---->>> Tipos 4 <<<----
//Você pode simplificar a função substituído todo 'void Function(int, int) way = (int v1, int v2)' por 'var way = (int v1, int v2)' pois o dar faz inferência automática durante a compilação, por debaixo ele identifica como 'int Function(int, int) water' por exemplo.
//1
var time = () {
print('people');
};
//2
var way = (int v1, int v2) {
print(v1+v2);
};
//3
var water = (int g1, int g2) {
return g1 * g2;
};
void main(){
time();
way(3, 6);
print(water(5, 7));
}
________________________________________________________
---->>> Tipos 5 <<<----
//Pode se remover a atribuição '=' porem 'var' deixa de ser aceito, tendo de ser tipificado de maneira correspondente.
//Volta o mesmo, em comando simples como 'print' usa-se void, em funções complexas com cálculos, variáveis e valores usa-se return e tipificação correspondente ou pode deixar sem tipo tambem 'water (int g1, int g2) {' que o Dart irá inferir como dynamic.
//1
void time() {
print('people');
}
//2
void way (int v1, int v2) {
print(v1+v2);
}
//3
int water (int g1, int g2) {
return g1 * g2;
}
void main(){
time();
way(3, 6);
print(water(5, 7));
}
________________________________________________________
---->>> Tipos 6 <<<----
//Pode-se simplificar ainda mais usando o comando 'arrow =>' removendo a necessidade de um 'corpo {}' da função, porém apenas para funções simples inline/na mesma linha.
//1
time() => print('people');
//2
way (int v1, int v2) => print(v1+v2);
//3
water (int g1, int g2) => g1 * g2;
void main(){
time();
way(3, 6);
print(water(5, 7));
}