55 lines
1.2 KiB
Dart
55 lines
1.2 KiB
Dart
|
import 'dart:math';
|
||
|
|
||
|
enum Car{Lada, BMW, Skoda}
|
||
|
|
||
|
extension CarX on Car{
|
||
|
static List<Car> generateRandomCar(int n){
|
||
|
var rnd = Random();
|
||
|
return List.generate(n, (i) => Car.values[rnd.nextInt(Car.values.length)]);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class NewCar{
|
||
|
final String name;
|
||
|
double cost;
|
||
|
|
||
|
NewCar(this.name, this.cost);
|
||
|
|
||
|
String get info => 'New car: $name, cost: $cost';
|
||
|
}
|
||
|
|
||
|
class OldCar extends NewCar{
|
||
|
final int mileage;
|
||
|
|
||
|
OldCar(
|
||
|
super.name,
|
||
|
super.cost, {
|
||
|
required this.mileage
|
||
|
});
|
||
|
|
||
|
double costOldCar(cost, mileage){
|
||
|
return cost - (mileage * 0.7);
|
||
|
}
|
||
|
//String info() => 'Old car: $name, cost: $cost, mileage: $mileage';
|
||
|
}
|
||
|
|
||
|
void main(){
|
||
|
asynchronous();
|
||
|
}
|
||
|
|
||
|
Future<void> asynchronous() async{
|
||
|
for (int i = 1; i < 5; i++) {
|
||
|
List<Car> car = CarX.generateRandomCar(1);
|
||
|
final auto = NewCar('$car', i * 1000000);
|
||
|
await Future.delayed(
|
||
|
const Duration(milliseconds: 10),
|
||
|
() => print(auto.info),
|
||
|
);
|
||
|
final oldAuto = OldCar('$car', i * 1000000 - (i * 100000 * 0.7), mileage: i * 100000);
|
||
|
await Future.delayed(
|
||
|
const Duration(milliseconds: 20),
|
||
|
() => print(oldAuto.info),
|
||
|
);
|
||
|
print('');
|
||
|
}
|
||
|
}
|