Загрузить файлы в «/»
This commit is contained in:
parent
f7a81221b5
commit
e2a21b56e9
95
code.dart
Normal file
95
code.dart
Normal file
@ -0,0 +1,95 @@
|
||||
// Classes +
|
||||
// Methods +
|
||||
// Enums +
|
||||
// Loops +
|
||||
// Generics (можно использовать List<>) +
|
||||
// Anonymous functions +
|
||||
// Future +
|
||||
// extension +
|
||||
|
||||
|
||||
void main () async {
|
||||
WorkScedule workScedule = WorkScedule();
|
||||
workScedule.push(new Worker('Слава', workDay: WeekDay.Wednesday, salary_per_day: 1500));
|
||||
workScedule.push(new Worker('Артём', workDay: WeekDay.Monday, salary_per_day: 2000));
|
||||
workScedule.push(new Worker('Лера', workDay: WeekDay.Tuesday, salary_per_day: 2500));
|
||||
workScedule.push(new Worker('Саша', workDay: WeekDay.Thursday));
|
||||
|
||||
for (var worker in await workScedule.getWorkersAsync())
|
||||
print('${worker.name} работает в ${worker.workDay.name} и получвет в месяц ${worker.fullSalary(worker.salary_per_day)}');
|
||||
}
|
||||
|
||||
class Worker {
|
||||
final String name;
|
||||
final WeekDay workDay;
|
||||
final int salary_per_day;
|
||||
|
||||
Worker(this.name, { this.workDay = WeekDay.Monday, this.salary_per_day = 1000 });
|
||||
|
||||
final fullSalary = (salary_per_day) => salary_per_day*4+7700;
|
||||
}
|
||||
|
||||
class WorkScedule{
|
||||
List<Worker> _workers = [];
|
||||
|
||||
void push(Worker worker){
|
||||
_workers.add(worker);
|
||||
}
|
||||
|
||||
Future<List<Worker>> getWorkersAsync() async {
|
||||
await Future.delayed(Duration(seconds: 5));
|
||||
_workers.sort((a, b) => a.workDay.order.compareTo(b.workDay.order));
|
||||
return _workers;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
enum WeekDay {
|
||||
Monday,
|
||||
Tuesday,
|
||||
Wednesday,
|
||||
Thursday,
|
||||
Friday,
|
||||
Saturday,
|
||||
Sunday
|
||||
}
|
||||
|
||||
extension WeekDayX on WeekDay{
|
||||
String get name {
|
||||
switch (this) {
|
||||
case WeekDay.Monday:
|
||||
return 'Понедельник';
|
||||
case WeekDay.Tuesday:
|
||||
return 'Вторник';
|
||||
case WeekDay.Wednesday:
|
||||
return 'Среда';
|
||||
case WeekDay.Thursday:
|
||||
return 'Четверг';
|
||||
case WeekDay.Friday:
|
||||
return 'Пятница';
|
||||
case WeekDay.Saturday:
|
||||
return 'Суббота';
|
||||
case WeekDay.Sunday:
|
||||
return 'Воскресенье';
|
||||
}
|
||||
}
|
||||
|
||||
int get order {
|
||||
switch (this) {
|
||||
case WeekDay.Monday:
|
||||
return 1;
|
||||
case WeekDay.Tuesday:
|
||||
return 2;
|
||||
case WeekDay.Wednesday:
|
||||
return 3;
|
||||
case WeekDay.Thursday:
|
||||
return 4;
|
||||
case WeekDay.Friday:
|
||||
return 5;
|
||||
case WeekDay.Saturday:
|
||||
return 6;
|
||||
case WeekDay.Sunday:
|
||||
return 7;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user