|

Dartの勉強8−2:匿名関数(ラムダ式)

配列のメソッドを使った処理等はラムダ式を使うとすっきりとしたものになります。1行で表せる処理を関数を宣言しないで完了させるものなので、行数削減になりますが、個人的には可読性が落ちると思います。

  1. sort
    //ラムダ式を使わない例
    int alphabeticalOrder(String a, String b) {
      return a.compareTo(b);
    }
    void main() {
      var names = ['Charlie', 'Alice', 'Bob'];
      names.sort(alphabeticalOrder);
      print(names); // ['Alice', 'Bob', 'Charlie']
    }
    
    //ラムダ式を使う例
    void main() {
      var names = ['Charlie', 'Alice', 'Bob'];
      names.sort((a,b) => a.compareTo(b)); //連続する2つの要素を取り出して大小比較して並び替え
      print(names); // ['Alice', 'Bob', 'Charlie']
    }
    
  2. map
    void main() {
      var numbers = [1, 2, 3, 4, 5];
      // ラムダ式を使ってリストの各要素を2倍にする
      var doubled = numbers.map((num) => num * 2).toList();
      print(doubled); // [2, 4, 6, 8, 10]
    }
    
  3. where(条件によるフィルタリング)
    void main() {
      var numbers = [1, 2, 3, 4, 5, 6];
      // 偶数だけをフィルタリング
      var evenNumbers = numbers.where((num) => num % 2 == 0).toList();
      print(evenNumbers); // [2, 4, 6]
    }
    
  4. コールバック関数としてのラムダ式
    void main() {
      // リストの各要素をプリントする
      var numbers = [1, 2, 3, 4, 5];
      numbers.forEach((num) => print('Number: $num'));
    }
    // Number: 1
    // Number: 2
    // Number: 3
    // Number: 4
    // Number: 5
    

類似投稿

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.