Heim  >  Artikel  >  Backend-Entwicklung  >  C++、PHP、Javascript、...、对lambda表达式的支持

C++、PHP、Javascript、...、对lambda表达式的支持

WBOY
WBOYOriginal
2016-08-08 09:26:171439Durchsuche

lambda

lambda表达式,也叫Closure(闭包),也叫匿名函数。由于其强大之处,几乎被所有主流开发语言支持,本文试图列出大部分语言中lambda表达式的样例代码,后续持续更新。

PHP对lambda的支持

<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>();
</span></code>
  • 必须显式引用外部变量,区分值和引用传递。

C++对lambda的支持

<code><span>#include <iostream></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> cout </code>
  • 必须显示引用外部变量,区分值传递和引用传递。
  • 支持[=][&]等简易语法来引用全部外部变量。

Javascript

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

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

callable();

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

callable();
</script></code>
  • 无需引用外部变量,外部变量自动可用。
  • 所有变量均按照引用传递。

以上就介绍了C++、PHP、Javascript、...、对lambda表达式的支持,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn