「Dart Advent Calendar 2014」 12日目は@zukkunが担当します。
今回は、少し基礎に戻ってみて、dart:coreのAPIを眺めてみます。その中で気になったものや紹介したいものをチョイスして解説していきます。
dart:coreとは
Dartの標準ライブラリの1つで、言語機能の中核となるような機能を提供します。
標準ライブラリは「dart:○○」という形の名称になっており、通常import "dart:○○;"
という形で読み込む必要があるのですが、dart:coreはimport
しなくても使えるものになっています。
identical関数
bool identical(Object a, Object b)
オブジェクトが同一かどうか調べます。
class Hoge {}
main() {
Hoge hoge1 = new Hoge();
Hoge hoge2 = new Hoge();
Hoge hoge3 = hoge1;
print(identical(hoge1, hoge2));
print(identical(hoge1, hoge3));
}
false
true
identityHashCode関数
int identityHashCode(Object object)
オブジェクトのハッシュ値を返します。
class Hoge {}
main() {
Hoge hoge = new Hoge();
print(identityHashCode(hoge));
}
991528256
なんかに使えると思います。
DateTimeクラス
日時を扱います。
main() {
print(new DateTime.now());
print(new DateTime(2014, 12, 25));
}
2014-12-12 00:22:22.797
2014-12-25 00:00:00.000
Durationクラス
時間の長さを扱います。
main() {
DateTime christmas = new DateTime(2014, 12, 25);
DateTime now = new DateTime.now();
Duration difference = christmas.difference(now);
print('クリスマスまで、あと${difference.inDays}日');
}
クリスマスまで、あと12日
List< E >抽象クラス
リストを扱います。
main() {
List<int> list = new List<int>.generate(10, (index) => index);
List<int> even = list.where((value) => value % 2 == 0).toList();
print(list);
print(even);
}
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 2, 4, 6, 8]
リテラルとして[1, 2, 3]
と書くと、Listオブジェクトとして扱えます。
Stopwatchクラス
時間を測ることができます。
main() {
Stopwatch stopwatch = new Stopwatch()..start();
stopwatch.stop();
Duration elapsed = stopwatch.elapsed;
print(elapsed.inMicroseconds); // stopwatch.elapsedMicrosecondsでも良い
}
455
Stringクラス
文字列を扱います。
main() {
// "○○"はStringオブジェクトとして扱える
// Stringクラスの*演算子を使用
print("hoge" * 5);
}
hogehogehogehogehoge
まとめ
他にも色々な機能や、紹介したクラスでも紹介していない様々なメソッドがあります。
これからも酒のつまみにリファレンスのぶらり旅をしていこうと思います。
明日は@ntaooさんです!