【Dart】パターンマッチングによるデータの取り出し

  • 2024年2月22日
  • 2024年2月21日
  • Dart

Dart言語は、フロントエンド開発からサーバーサイド、モバイルアプリケーション開発まで幅広く利用されています。その柔軟性の一つとして、パターンマッチングによるデータの取り出しがあります。この機能を使うことで、コードの可読性と保守性を向上させることができます。

Dart 3.0の記事で記載しましたが、本格的な使用方法の記事があったので、自分でも試してみました!

Dart 3を発表@Google I/O 2023

データの分解(Destructuring)

データの分解は、配列やオブジェクトから必要なデータを簡単に取り出すための機能です。Dartでは、この機能を使ってコードをより簡潔に書くことが可能です。

配列からのデータ取り出し

配列からのデータ取り出しは、配列の各要素を個別の変数に割り当てることができます。以下の例では、配列から2つの要素を取り出し、それぞれabに割り当てています。

var [a, b] = [1, 2];
expect(a + b, 3);

さらに、配列の一部を無視したり、残りの要素を新しい配列として取り出すこともできます。

var [first1, second1, _, last1] = [1, 2, 3, 4];
expect('$first1, $second1, $last1', '1, 2, 4');

var [first2, ..., last2] = [1, 2, 3, 4, 5, 6];
expect('$first2, $last2', '1, 6');

var [first3, ...rest, last3] = [1, 2, 3, 4, 5, 6];
expect('$first3, $last3', '1, 6');
expect(rest, [2, 3, 4, 5]);

オブジェクトの分解

オブジェクトからのデータ取り出しでは、オブジェクトのプロパティを個別の変数に割り当てることができます。これは、特にオブジェクトが複雑な構造を持つ場合に便利です。

class Person {
  final String? company;
  final String name;

  Person({this.company, required this.name});
}

test('オブジェクトの分解', () {
  final person = Person(company: 'Toyota', name: 'Suzuki');

    var Person(company: company1, name: name1) = person;
    expect(company1, 'Toyota');
    expect(name1, 'Suzuki');
});

この機能を使うことで、オブジェクトの特定のプロパティに簡単にアクセスし、それらを新しい変数に割り当てることができます。これにより、コードの可読性が向上し、データの操作がより簡単になります。

まとめ

Dartにおけるパターンマッチングは、データの取り出しや操作を簡単かつ効率的に行うための強力なツールです。この記事で紹介した基本的な使い方をマスターすることで、Dartでの開発がより快適になるでしょう。

参考