Dart의 유틸리티 패키지 supercharged 소개

들어가기에 앞서⚡️

Dart의 extension method 소개

int.parse('42')
'42'.parseInt()
extension NumberParsing on String {
int parseInt() {
return int.parse(this);
}
}

supercharged : extension method 의 집합

supercharged는 Dart 개발의 슈퍼차저가 될수도 있습니다
{
color: '#ff00ff'.toColor()
}

자주 사용할만한 supercharged 메소드 소개

문자열 변환

"[1,2,3]".parseJSON();
'123'.toInt();
'1.23'.toDouble();

Int

3.times(() => print("Hello"));
10.seconds;
1000.milliseconds;
100.tweenTo(200);

DateTime

DateTime(2020, 1, 1) + 2.days;
DateTime(2020, 1, 1) - 2.days;
DateTime(2020).rangeTo(DateTime(2021));
DateTime(2020, 1, 1).rangeTo(DateTime(2020, 1, 2), by: 1.hours);

Error

throwIf(n < 1, () => ArgumentError("n must be greater than 0"));
throwIfNot(n > 1, () => ArgumentError("n must be greater than 0"));

Iterable Aggregation 과 리스트

[2, 6, 4, 8].sum();
[2, 6, 4, 8].average();
[2, 6, 4, 8].max();
[2, 6, 4, 8].min();
[2, 6, 4, 8].count();
[MapEntry("a", 1), MapEntry("b", 2)].toMap(); // {"a": 1, "b": 2}
["a", "b", "c"].forEachIndex((index, value) {
print("$index : $value");
});
["a", "b"].elementAtOrElse(2, () => "");
List<Person> persons = [
Person(name: "John", age: 21),
Person(name: "Carl", age: 18),
Person(name: "Peter", age: 56),
Person(name: "Sarah", age: 61)
];
[3, 1, 5, 9, 7].sortedBy((a,b) => a.compareTo(b));
[1, 2, 3].toJSON();

Map

{"a": 1, "b": 2}.toJSON();

끝으로