libro
www.tuyano.com
初心者のためのDart 2入門

関数を利用する (4/6)

作成:2018-03-31 08:08
更新:2018-03-31 08:08

■無名関数

関数は、あらかじめ定義しておいたものを呼び出して使う、という使い方しかしないわけではありません。ときには、「関数の定義そのものを値として記述する」ということもあります。

先にリストなどの説明をしたとき、「forEach」というものを使ったのを思い出しましょう。forEachの例を挙げておきます。
void main() {
  var arr = [12,34,56,78,90,97,86,53,42,10];
  var total = 0;
  arr.forEach((n){
    total += n;
  });
  print('total:${total}');
}
ここでは、arrの合計を計算しています。forEachの()内に、こんなものが記述されているのがわかりますね。
(n){ total += n; }
これは、関数なのですが、名前をつけて定義されたものではありません。何の名前もない関数で、一般に「無名関数」と呼ばれたりします。Dartでは、このように「値として関数を記述する」ということもできるのです。


■値(オブジェクト)としての関数

forEachでは、別途定義しておいた関数を引数に指定することもできるのです。例えば、こんな形ですね。
void main() {
  var arr = {'one':100, 'two':200, 'three':300};
  arr.forEach(total);
}

void total(ky, vl){
  print('${ky}: ${vl}');
}
ここでは、forEachの引数に、totalを指定していますね。これで、total関数がforEachの引数に指定できます。

関数は、こんな具合に値として使うこともできます。関数は、「オブジェクト」と呼ばれる値として扱われます(オブジェクトについては、次回の「クラス」というものでもう少し詳しく説明をします)。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

※関連コンテンツ

「初心者のためのDart 2入門」に戻る