-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path42-Enhanced-Enums.dart
36 lines (26 loc) · 985 Bytes
/
42-Enhanced-Enums.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
// Enhanced ENUMS - funcionam como uma classe tambem
void main(){
final employee1 =Employee('Valdemar', EmployeeType.swe);
final employee2 = Employee('Fulano', EmployeeType.finance);
final employee3 = Employee('Sonal', EmployeeType.marketing);
employee1.fn();
employee2.fn();
employee3.fn();
}
enum EmployeeType {
swe(200000), // obrigatoriamente precisam comecar com minusculas. Enhanced enum precisam ter inicializacao do salary
finance(250000),
marketing(150000); // ponto virgula aqui para separar
final int salary;
const EmployeeType(this.salary);
}
class Employee {
final String name;
final EmployeeType type;
Employee (this.name,this.type);
void fn() { // essa funcao com switch exige que todos os cases do switch sejam
print(type.salary);
}
}
/* ENUM também pode ser feito como implements, mas nao vamos entrar nessa parte aqui nesse curso
* Seria enum EmployeeType implements TalTalTal */