Maison  >  Article  >  développement back-end  >  C++、PHP、Javascript、...、对lambda表达式的支持

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

WBOY
WBOYoriginal
2016-08-08 09:26:171486parcourir

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教程有兴趣的朋友有所帮助。

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn