lambda
lambda表达式,也叫Closure(闭包),也叫匿名函数。由于其强大之处,几乎被所有主流开发语言支持,本文试图列出大部分语言中lambda表达式的样例代码,后续持续更新。
PHP对lambda的支持
<?php
$i = 12;
$j = 33;
$callable = function () use ($i, &$j)
{
echo $i . "\n";
echo $j . "\n";
};
$callable();
$i++;
$j++;
$callable();
- 必须显式引用外部变量,区分值和引用传递。
C++对lambda的支持
#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
int i = 12;
int j = 33;
auto callable = [i, &j](){
cout << i << endl;
cout << j << endl;
};
callable();
i++;
j++;
callable();
}
- 必须显示引用外部变量,区分值传递和引用传递。
- 支持
[=][&]
等简易语法来引用全部外部变量。
Javascript
<script>
var i = 12;
var j = 33;
var callable = function(){
alert(i);
alert(j);
}
callable();
i++;
j++;
callable();
</script
- 无需引用外部变量,外部变量自动可用。
- 所有变量均按照引用传递。