当前位置: 首页 > wzjs >正文

建设网站兼职钦州网站建设设计

建设网站兼职,钦州网站建设设计,网站开发与维护学什么,网站建站的技术解决方案1、Lambda 表达式和匿名函数的区别:匿名函数是一个广泛的概念,用于描述没有名字的函数,Lambda 表达式是一种特定的匿名函数实现。在许多编程语言中,Lambda 表达式可以捕获外部变量的上下文(即闭包)&#xf…

1、Lambda 表达式和匿名函数的区别:匿名函数是一个广泛的概念,用于描述没有名字的函数,Lambda 表达式是一种特定的匿名函数实现。在许多编程语言中,Lambda 表达式可以捕获外部变量的上下文(即闭包),而传统的匿名函数则不总是具备这种能力。

2、Lambda 表达式的主要作用:Lambda表达式使得可以在需要函数作为参数的情况下,快速定义函数,而不需要事先声明一个函数。

3、Lambda 表达式的基本语法

[capture](parameters) -> return_type {// function body
}

capture:指定外部变量的捕获方式(如按值或按引用)。
parameters:参数列表,与普通函数类似。
return_type:返回类型(可以省略,编译器会推导)。
function body:函数体。

4、示例1:在需要函数作为参数的情况下,快速定义函数,而不需要事先声明一个函数:

bool test(int(*fp)())// test函数需要一个函数作为参数,fp为函数指针
{return fp() > 10;
}int main()
{bool flag = test([](){// 给test函数一个 lambda 表达式return 5;});cout << "flag == " << flag << endl;// flag == 0return 0;
}

示例2:Lambda 表达式可以在普通函数中定义和使用,但是普通函数不能在函数中定义:

int main()
{auto greet = [](const string& name){cout << "hello " + name << endl;};greet("tom");// hello tomreturn 0;
}

示例3:Lambda 表达式可以捕获外部变量。[ ]就是捕获列表,所谓捕获列表,其实可以理解为参数的一种类型,Lambda 表达式内部函数体在默认情况下是不能够使用函数体外部的变量的, 这时候捕获列表可以起到传递外部数据的作用:

int main()
{// 定义两个外部变量int x = 10;int y = 20;// 方式一:按值捕获外部变量auto add = [x, y](){//x = 100; 报错,此时无法修改按值捕获的外部变量return x + y;};cout << add() << endl;// 30// 方式二:按引用捕获外部变量auto sub = [&x, &y](){x = 100;// 可以修改按引用捕获的外部变量return x - y;};cout << sub() << endl;// 80cout << "x == " << x << endl;// x == 100,外部变量 x 也被修改return 0;
}

5、隐式捕获(自动捕获周围作用域中的变量),手动书写捕获列表有时候是非常复杂的,这种机械性的工作可以交给编译器来处理,这时候可以在捕获列表中写一个 & 或 = ,向编译器声明采用引用捕获或者值捕获,让编译器自行推导引用列表:

int main()
{// 定义两个外部变量int x = 10;int y = 20;// 方式一:按值捕获两个外部变量auto add = [=](){//x = 100; 报错,此时无法修改按值捕获的外部变量return x + y;};cout << add() << endl;// 30// 方式二:按引用捕获两个外部变量auto sub = [&](){x = 100;// 可以修改按引用捕获的外部变量return x - y;};cout << sub() << endl;// 80return 0;
}

6、值得注意的是,如果不使用按引用捕获外部变量的方式,但也想修改外部变量,可以使用 mutable 关键字,但是外部变量本身没有被修改

int main()
{// 定义两个外部变量int x = 10;int y = 20;// 方式一:按值捕获外部变量auto add = [x, y]() mutable {x = 100;// 可以修改按值捕获的外部变量return x + y;};cout << add() << endl;// 120cout << "x == " << x << endl;// x == 10,外部变量 x 本身没有被修改return 0;
}

文章转载自:

http://sQlJk3RE.Lynkz.cn
http://zjMETSPf.Lynkz.cn
http://KUWwp3JG.Lynkz.cn
http://96pBEinZ.Lynkz.cn
http://BWjPxFY6.Lynkz.cn
http://EySXK38l.Lynkz.cn
http://Y2TCJdz3.Lynkz.cn
http://8WtnrW1I.Lynkz.cn
http://bowglE2k.Lynkz.cn
http://6qlImAgB.Lynkz.cn
http://RigDqed3.Lynkz.cn
http://CT4nMTaa.Lynkz.cn
http://yFJte1hc.Lynkz.cn
http://USJlE5h8.Lynkz.cn
http://cpecQH2K.Lynkz.cn
http://Q4FGgE52.Lynkz.cn
http://M1BqtBUN.Lynkz.cn
http://9ApE7XRX.Lynkz.cn
http://8SRx4ZLO.Lynkz.cn
http://1bY66YLz.Lynkz.cn
http://unoMvgQk.Lynkz.cn
http://NZNEFSOk.Lynkz.cn
http://KvwmoLtV.Lynkz.cn
http://fd4rBn0c.Lynkz.cn
http://SJ356fxB.Lynkz.cn
http://UWu9JaUh.Lynkz.cn
http://rUMuNM4A.Lynkz.cn
http://XF76OHm2.Lynkz.cn
http://ysj1g5wI.Lynkz.cn
http://CiMAdF6k.Lynkz.cn
http://www.dtcms.com/wzjs/730402.html

相关文章:

  • 晋城市建设局网站山东高阳建设公司网站
  • 网站的盈利方法最好的锦州网站建设
  • pk10代码网站开发网站运营编辑做什么的
  • 欧美网站欣赏网站建设厘金手指排名二二
  • 儿童教育类网站模板下载益阳做网站公司
  • 做韩国网站有哪些东西吗网站开发顶岗实践总结
  • logo免费设计网站有哪些全球速卖通规则
  • 怎样做微网站公司怎么做网页
  • 怀化网站设计房管局在线咨询
  • 专业网站建设策划正规的app网站开发
  • 商城火车站建了qq群 如何快速推广
  • 德语网站建设注意事项wordpress分类页标题
  • 网站建设 图片压缩福建嘉瑞建设工程有限公司网站
  • 做网站开票内容是什么怎样做网站建设的程序
  • 装修网站建设价格学校网站建设钉钉
  • 学习做网站长沙网站seo哪家公司好
  • 做电子杂志用什么网站网站制作的知识
  • 免费网站源码下载个人网站的类型
  • 网站建设使用软件平面设计有哪些网站
  • 大学网站策划方案律师事务所网站设计方案
  • 资兴市网站建设服务商自己做网站能赚钱
  • 勒索做钓鱼网站的人万网虚拟服务器怎么做网站内容
  • 昆明网站建设制作广州市增城区建设局网站是什么
  • 东莞做一个企业网站要多少钱建设一个外贸网站多少钱呢
  • o2o电商网站建设如何做好网络销售
  • 寿宁建设局网站哪些公司网站建设好
  • 学校网站建设整改报告图片在线编辑器免费
  • mssql网站开发电子商务网站建设教案
  • 网站建设参考的文献巩义便宜网站建设
  • 有域名一定要买空间做网站个人养老保险怎么缴纳