SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

マンガで分かるプログラミング用語辞典

「無名関数」
~マンガでプログラミング用語解説

マンガで分かるプログラミング用語辞典(34)

  • X ポスト
  • このエントリーをはてなブックマークに追加

解説

 関数は、通常は名前を付けて利用します。そして、ソースコードの様々な場所から、その名前で呼び出します。しかし時には、名前を付けずに利用することがあります。そういった関数のことを「無名関数」と呼びます。

 無名関数は、その場で1回だけ使う「使い捨て」の関数として利用したり、イベント駆動プログラミングで、イベントが起きた時に実行する関数として利用したりします。

 関数は、プログラムを構造化する便利な方法ですが、その全てに名前を付けるのは意外に面倒です。関数名を使って呼び出す必要がない関数では、こういった手法で「名前なし」の「無名」で使うことがあります。

サンプル

 無名関数を使った処理を、JavaScriptで簡単に書いてみます。

<html>
    <head>
        <title>「無名関数を使った処理」のサンプル</title>
    </head>
    <body>
        <pre><script type="text/javascript">
            // 1行で関数を作って実行
            var sum = (function(a, b) {return a + b;})(1, 2);
            document.writeln(sum);
            document.writeln("");

            // 文字列長でソート
            var sArr = ["あいうえお", "かきく", "さしすせ", "たち"];
            var sArr2 = sArr.sort(function(a, b) {
                return a.length > b.length;
            });
            document.writeln(sArr2.join("\n"));
            document.writeln("");

            // 置換処理の結果を利用して合計数を計算
            var s = "1,2,3,4,5";
            var sumStr = 0;
            s.replace(/(\d+)/g, function(s, a1) {
                sumStr += a1 * 1;
            });
            document.writeln(sumStr);

        </script></pre>
    </body>
</html>
出力結果)
3

たち
かきく
さしすせ
あいうえお

15
フィードバックお待ちしております!

 ご感想、解説して欲しい用語、解説内容のアドバイスなどございましたら、FacebookTwitterなどでお気軽に編集部までお寄せください。よろしくお願いいたします。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
マンガで分かるプログラミング用語辞典連載記事一覧

もっと読む

この記事の著者

柳井 政和(ヤナイ マサカズ)

クロノス・クラウン合同会社 代表社員http://crocro.com/オンラインソフトを多数公開。プログラムを書いたり、ゲームを作ったり、記事を執筆したり、マンガを描いたり、小説を書いたりしています。「めもりーくりーなー」でオンラインソフト大賞に入賞。最近は、小説家デビューして小説も書いています(『裏切りのプログラム』他)。面白いことなら何でもOKのさすらいの企画屋です。 

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7264 2013/08/13 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング