ホームページ  >  記事  >  バックエンド開発  >  C++、PHP、JavaScript、...、ラムダ式のサポート

C++、PHP、JavaScript、...、ラムダ式のサポート

WBOY
WBOYオリジナル
2016-08-08 09:26:171438ブラウズ

lambda

ラムダ式、Closure(クロージャ)とも呼ばれ、匿名関数とも呼ばれます。その強力な機能により、ほとんどすべての主流の開発言語でサポートされており、この記事ではほとんどの言語のラムダ式のサンプル コードをリストすることを目的としており、今後も継続的に更新されます。

PHP のラムダのサポート

<code><span><?php</span><span>$i</span> = <span>12</span>;
<span>$j</span> = <span>33</span>;
<span>$callable</span> = <span><span>function</span><span>()</span><span>use</span><span>(<span>$i</span>, &<span>$j</span>)</span>
{</span><span>echo</span><span>$i</span> . <span>"\n"</span>;
    <span>echo</span><span>$j</span> . <span>"\n"</span>;
};

<span>$callable</span>();

<span>$i</span>++;
<span>$j</span>++;

<span>$callable</span>();
</code>
  • は、値の受け渡しと参照の受け渡しを区別して、外部変数を明示的に参照する必要があります。

C++ の lambda のサポート

<code><span>#include <iostream></span><span>using</span><span>namespace</span><span>std</span>;

<span>int</span> main(<span>int</span> argc, <span>char</span>** argv)
{
    <span>int</span> i = <span>12</span>;
    <span>int</span> j = <span>33</span>;
    <span>auto</span> callable = [i, &j](){
        <span>cout</span> << i << endl;
        <span>cout</span> << j << endl;
    };

    callable();

    i++;
    j++;

    callable();
}
</code>
  • は、値の転送と参照の転送を区別して、外部変数を明示的に参照する必要があります。
  • すべての外部変数を参照するための [=][&] などの単純な構文をサポートします。

Javascript

<code><script>
var <span>i</span> = <span>12</span>;
var <span>j</span> = <span>33</span>;

var callable = <span><span>function</span><span>()</span>{</span>
    alert(<span>i</span>);
    alert(<span>j</span>);
}

callable();

<span>i</span>++;
<span>j</span>++;

callable();
</script</code>
  • 外部変数を参照する必要はなく、外部変数は自動的に使用可能になります。
  • すべての変数は参照によって渡されます。

上記では、C++、PHP、JavaScript などでのラムダ式のサポートについて説明しており、関連する内容も含めて、PHP チュートリアルに興味のある友人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。