Files
dartsunfish/lib/tester.dart
2021-08-20 10:55:48 +03:00

133 lines
2.6 KiB
Dart

import 'dart:convert';
import 'package:dartsunfish/src/extentions.dart';
class MyItem {
int id;
String name;
MyItem({
required this.id,
required this.name,
});
MyItem copyWith({
int? id,
String? name,
}) {
return MyItem(
id: id ?? this.id,
name: name ?? this.name,
);
}
Map<String, dynamic> toMap() {
return {
'id': id,
'name': name,
};
}
factory MyItem.fromMap(Map<String, dynamic> map) {
return MyItem(
id: map['id'],
name: map['name'],
);
}
String toJson() => json.encode(toMap());
factory MyItem.fromJson(String source) => MyItem.fromMap(json.decode(source));
@override
String toString() => 'MyItem(id: $id, name: $name)';
@override
bool operator ==(Object other) {
if (identical(this, other)) return true;
return other is MyItem && other.id == id && other.name == name;
}
@override
int get hashCode => id.hashCode ^ name.hashCode;
}
void main(List<String> args) {
final someList = List.generate(
10,
(i) => {
{i, 's'}: 'See item $i'
});
bool root = true;
final someSet = Set.from(List<MyItem>.generate(10, (index) => MyItem(id: index, name: 'name $index')).toSet());
print(someSet.contains(MyItem(id: 2, name: 'name 2')) && !root);
print(someList);
final first = someList[0].get({0, 's'});
print('I found $first');
final someMap = {
{1, 'S1'}: 'See item 1',
{2, 'S2'}: 'See item 1'
};
var s1 = {
1,
'S1',
22.23,
['q', 12]
};
var s2 = {
1,
'S1',
22.23,
['q', 12]
};
var s3 = {
1: 'S1',
22.23: ['q', 12]
};
var s4 = {
1: 'S1',
22.23: ['q', 12]
};
print('Equality test gives ${s1.isEqual(s2)}');
print('Equality test gives ${s3.isEqual(s4)}');
print(someMap.get({1, 'S2'}, or: 'Oops'));
var ff = someList.firstWhere((element) => element.get({1, 's'}) != null, orElse: () => someList[0]);
// print('In map ${someMap.entries.toList()}');
print('In map $ff');
for (var i in List.generate(10, (index) => index + 1)) {
print('III = $i');
}
Iterator<String> getStringIterator(String s) => s.runes.map((r) => String.fromCharCode(r)).iterator;
final str = 'Hello, World';
final strList = str.split('');
strList.forEachIndexed((e, i) {
if (e != 'o') {
print('See $e');
} else {
return;
}
});
final strIter = getStringIterator(str);
for (var i = 0; i < str.runes.length; i++) {
strIter.moveNext();
print('In map ${strIter.current}');
print('And ${String.fromCharCode(str.runes.elementAt(i))}');
}
}