lambda
lambda表达式,也叫Closure(闭包),也叫匿名函数。由于其强大之处,几乎被所有主流开发语言支持,本文试图列出大部分语言中lambda表达式的样例代码,后续持续更新。
PHP对lambda的支持
<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>();
- 必须显式引用外部变量,区分值和引用传递。
C++对lambda的支持
<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();
}
- 必须显示引用外部变量,区分值传递和引用传递。
- 支持
[=][&]等简易语法来引用全部外部变量。
Javascript
立即学习“PHP免费学习笔记(深入)”;
<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- 无需引用外部变量,外部变量自动可用。
- 所有变量均按照引用传递。
以上就介绍了C++、PHP、Javascript、...、对lambda表达式的支持,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。











