-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path017_extension_methods.dart
62 lines (50 loc) · 1.51 KB
/
017_extension_methods.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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
// Kendi eklenti methodlarımızı oluşturmak için aşağıdaki sozdizimi kullanılır.
// extension <extension name>? on <type> {
// (<member definition>)*
// }
// methodların daha efektif hale getirilebilir.
extension NumberParsing on String {
int parseInt() {
return int.parse(this);
}
double parseDouble() {
return double.parse(this);
}
}
extension on String {
bool get isBlank => trim().isEmpty;
}
extension MyFancyList<T> on List<T> {
int get doubleLength => length * 2;
List<T> operator -() => reversed.toList();
List<List<T>> split(int at) => [sublist(0, at), sublist(at)];
}
void foo1() {
print(int.parse('42'));
var result = '42'.parseInt();
print(result);
print(result.runtimeType);
}
void foo2() {
// String üzerindeki eklenti metodları
String numberString = "42";
int parsedNumber = numberString.parseInt();
print("Parsed number: $parsedNumber");
String doubleString = "3.14";
double parsedDouble = doubleString.parseDouble();
print("Parsed double: $parsedDouble");
String emptyString = "";
bool isBlank = emptyString.isBlank;
print("Is empty string blank? $isBlank");
// List üzerindeki eklenti metodları
List<int> numbers = [1, 2, 3];
int doubleLength = numbers.doubleLength;
print("Double length of numbers list: $doubleLength");
List<int> reversedNumbers = -numbers;
print("Reversed numbers: $reversedNumbers");
List<List<int>> splitNumbers = numbers.split(2);
print("Split numbers: $splitNumbers");
}
void main(List<String> args) {
foo2();
}