-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path13-funcoes-que-retornam-funcoes.dart
38 lines (31 loc) · 1.12 KB
/
13-funcoes-que-retornam-funcoes.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
void main() {
// Funcoes que retornam funcoes
final stuff = getStuff();
// print(stuff); Essa funcao dá o erro Closure 'printStuff_Closure'
print(stuff()); // essa funcao imprime Yoooo e tambem null. Por que?
print('');
/*
print(() { -> esse segmento dá mensagem de erro
print('yuhuuu'); -> Closure 'main_closure'
});
*/
print (() { // aqui imprime yuhuuu e depois null
print ('Yuhuuuu');
}()); // perceba aqui o () que evita o
// clusure main_closure mas gera um null
print('');
() { //ao retirar os dois prints, ficou só
print ('Içaaaaa'); // () antes e depois de { }
} (); // () {comandos} ()
print('');
//JEITO CORRETO DE USAR FUNCAO QUE RETORNA FUNCAO:
final stuff2 = getStuff();
stuff2(); // BASTA CHAMAR A VARIAVEL QUE RECEBEU FUNCAO DE
// RETORNO COMO SE A VARIAVEL FOSSE UMA FUNCAO
// TAMBEM. VARIAVEL STUFF2 CHAMAR STUFF2();
}
Function getStuff() {
return () {
print('Yoooo');
};
}