hamburger

主に日記

Dartで拡張関数を作成する(extensions methods)

最近Flutterで仕事をしているのですが、定期的にSDK側で提供している既存クラスの拡張をしたくなる時があります。Android(というかKotlin)の場合は拡張関数を定義していたので、その感覚でなにかできないかなと思っていたら、Dartにも拡張関数が実装されていました。

dart2.6から提供されているみたいです。

dart.dev

www.youtube.com

今回は、DateTime型のレシーバを任意のフォーマットに変換してString型で返却する関数を作ってみました。

Dartdatetimeをフォーマットする拡張関数

拡張関数は何でも作れてしまうので責務を意識する必要がありますが、プロジェクトに共通で必要なものはまず作ってみて、必要に応じて固有のクラスを作成していけばよいのではと考えています