関数を利用する (4/6)
作成:2018-03-31 08:08
更新:2018-03-31 08:08
更新:2018-03-31 08:08
■無名関数
関数は、あらかじめ定義しておいたものを呼び出して使う、という使い方しかしないわけではありません。ときには、「関数の定義そのものを値として記述する」ということもあります。
先にリストなどの説明をしたとき、「forEach」というものを使ったのを思い出しましょう。forEachの例を挙げておきます。
forEachでは、別途定義しておいた関数を引数に指定することもできるのです。例えば、こんな形ですね。
関数は、こんな具合に値として使うこともできます。関数は、「オブジェクト」と呼ばれる値として扱われます(オブジェクトについては、次回の「クラス」というものでもう少し詳しく説明をします)。
先にリストなどの説明をしたとき、「forEach」というものを使ったのを思い出しましょう。forEachの例を挙げておきます。
void main() {ここでは、arrの合計を計算しています。forEachの()内に、こんなものが記述されているのがわかりますね。
var arr = [12,34,56,78,90,97,86,53,42,10];
var total = 0;
arr.forEach((n){
total += n;
});
print('total:${total}');
}
(n){ total += n; }これは、関数なのですが、名前をつけて定義されたものではありません。何の名前もない関数で、一般に「無名関数」と呼ばれたりします。Dartでは、このように「値として関数を記述する」ということもできるのです。
■値(オブジェクト)としての関数
forEachでは、別途定義しておいた関数を引数に指定することもできるのです。例えば、こんな形ですね。
void main() {ここでは、forEachの引数に、totalを指定していますね。これで、total関数がforEachの引数に指定できます。
var arr = {'one':100, 'two':200, 'three':300};
arr.forEach(total);
}
void total(ky, vl){
print('${ky}: ${vl}');
}
関数は、こんな具合に値として使うこともできます。関数は、「オブジェクト」と呼ばれる値として扱われます(オブジェクトについては、次回の「クラス」というものでもう少し詳しく説明をします)。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
※関連コンテンツ