Dartの基礎2

Flutter

前回に引き続き、Dartの基礎を説明していきます。

今回紹介する内容は、前回よりも少しレベルアップした内容になります。

アロー関数

Dartにはアロー関数があり、短く1行で計算したり、その値などを返したりできます。

つまり{ return xxx; }の代わりに => xxxが使えるのです。

演算子のオーバーロード

Dartで一致するか比較するときは「=」ではなく「==」を用います。classが完全に一致するかを調べたいときは、演算子のオーバーロードをする必要がある場合があります。

car1 == car2のように2つのcarオブジェクトの一致を調べたい、つまり、「carのmakeとmodelが一致する」ことを確認したい場合は以下のようになります。

注意:ハッシュコード

「==」をオーバーロードする際に、「hashCode」もオーバーロードすることを覚えておきましょう。もしそれを忘れると、Frutterからwarningが出ます。

イコールや配列などのコレクションフレームワークはハッシュコードを使っているため、一緒にオーバーライドする必要があるのです。

リフレクション

リフレクションは、classやインターフェイス、フィールドなどを、メソッドなどの名前を知ることなく検査することができます。

Dartの「mirrors」というライブラリを使うことで、リフレクションを使うことができます。

Mixin(ミックスイン)

ミックスインは、他クラスの親にならずに、そこで使うためのメソッドを含んだクラスです。

コレクション

はじめに

開発を行う際、メモリに記憶されている情報を見ることになると思います。コレクションクラスを使うことで、それを調査したり、分類したり、挿入したり、操作したり、削除したりできます。

Dartでは、コレクションを、基のライブラリとコレクションライブラリの両方で提供しています。一般的なものは元のライブラリにあり、限定的、特徴的なものを使いたい場合はコレクションライブラリを使います。

リスト

リストは、並んだコレクションです。ほかの言語と違い、リストと配列は同じものとして結合できます。下の例で、リストが、通常は配列で使用される[]によってどのように宣言され、並び変えられるかを確認してください。

Frutterはどこでもリストを使う

FrutterでUIコードを書くときは必ずリストで終わります。

下の例では、子ウィジェットを指定するためにリストを使っています。

マップ

このオブジェクトはキーと値をマップ(紐づけ)します。この時のキーと値はどのようなタイプでも可能です。マップは動的なコレクションです。

より特化したものを使うときは…

より特化したものを使いたい場合は、「dart:collection」ライブラリを使用します。

次のように書くことで、使えるようになります。

タイトルとURLをコピーしました