拡張関数

概要

Dartでは、関数の書き方で拡張関数を作成することが出来る。
これにより、型に対しての関数を作成することが出来る。
書き方としては、extension 拡張クラス名 on 拡張したい型である。

以下にコード例を示す。

extension StringExtensions on String {
  void printUpperCase() {
    print(this.toUpperCase());
  }
}
 
void main() {
  String myString = "hello, world";
  myString.printUpperCase(); // 拡張関数を使用して文字列を大文字で出力
}
 

このように使用すると言語で用意されたプリミティブ型に対しても、メソッドを自身で作成することができる。

thisについて

拡張関数内ではthisキーワードを使用して、自身を参照することができる。
以下に例を示す。

extension IntExtensions on Int {
  int square() {
    return this * this;//ここでthisを使用して自身を参照している。
  }
}