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

手机端网站首页怎么做wordpress媒体文件

手机端网站首页怎么做,wordpress媒体文件,商丘网站推广,网站名称要注册吗为什么需要lambda函数匿名函数是许多编程语言都支持的概念#xff0c;有函数体#xff0c;没有函数名。1958年#xff0c;lisp首先采用匿名函数#xff0c;匿名函数最常用的是作为回调函数的值。正因为有这样的需求#xff0c;c引入了lambda 函数#xff0c;你可以在你的…为什么需要lambda函数 匿名函数是许多编程语言都支持的概念有函数体没有函数名。1958年lisp首先采用匿名函数匿名函数最常用的是作为回调函数的值。正因为有这样的需求c引入了lambda 函数你可以在你的源码中内联一个lambda函数这就使得创建快速的一次性的函数变得简单了。例如你可以把lambda函数可在参数中传递给std::sort函数 #include algorithm #include cmath void abssort(float* x, unsigned N) { std::sort(x, x N, // Lambda expression begins [](float a, float b) { return std::abs(a) std::abs(b); }); } 你可能会问使用函数对象不是也可以吗是的函数对象当然没问题自己写的回调函数你可以传个函数指针也没有问题。他们有优点也有缺点。函数对象能维护状态但语法开销大而函数指针语法开销小却没法保存范围内的状态。如果你觉得鱼和熊掌不可兼得那你可错了。lambda函数结合了两者的优点让你写出优雅简洁的代码。 基本lambda语法 基本形式如下 [capture](parameters)-return-type {body} []叫做捕获说明符表示一个lambda表达式的开始。接下来是参数列表即这个匿名的lambda函数的参数-return-type表示返回类型如果没有返回类型则可以省略这部分。想知道为什么返回类型可以这么表示这涉及到c11的另一特性参见自动类型推导最后就是函数体部分了。 我们可以这样输出hello,world auto func [] () { cout hello,world; }; func(); // now call the function 变量捕获与lambda闭包实现 string name; cin name; [](){cout name;}(); lambda函数能够捕获lambda函数外的具有自动存储时期的变量。函数体与这些变量的集合合起来叫闭包。 [] 不截取任何变量[} 截取外部作用域中所有变量并作为引用在函数体中使用[] 截取外部作用域中所有变量并拷贝一份在函数体中使用[, foo] 截取外部作用域中所有变量并拷贝一份在函数体中使用但是对foo变量使用引用[bar] 截取bar变量并且拷贝一份在函数体重使用同时不截取其他变量[x, y] x按值传递y按引用传递[this] 截取当前类中的this指针。如果已经使用了或者就默认添加此选项。看到这不禁要问这魔法般的变量捕获是怎么实现的呢原来lambda是通过创建个小类来实现的。这个类重载了操作符()一个lambda函数是该类的一个实例。当该类被构造时周围的变量就传递给构造函数并以成员变量保存起来。看起来跟函数对象很相似。 最后lambda函数的类型是什么呢答案是std:function。 C11 的 lambda 表达式规范如下 [ capture ] ( params ) mutable exception attribute - ret { body }(1) [ capture ] ( params ) - ret { body }(2) [ capture ] ( params ) { body }(3) [ capture ] { body }(4) 其中 (1) 是完整的 lambda 表达式形式(2) const 类型的 lambda 表达式该类型的表达式不能改捕获(capture)列表中的值。(3)省略了返回值类型的 lambda 表达式但是该 lambda 表达式的返回类型可以按照下列规则推演出来 如果 lambda 代码块中包含了 return 语句则该 lambda 表达式的返回类型由 return 语句的返回类型确定。如果没有 return 语句则类似 void f(...) 函数。省略了参数列表类似于无参函数 f()。mutable 修饰符说明 lambda 表达式体内的代码可以修改被捕获的变量并且可以访问被捕获对象的 non-const 方法。 exception 说明 lambda 表达式是否抛出异常(noexcept)以及抛出何种异常类似于void f() throw(X, Y)。 attribute 用来声明属性。 另外capture 指定了在可见域范围内 lambda 表达式的代码内可见得外部变量的列表具体解释如下 [a,b] a变量以值的方式呗捕获b以引用的方式被捕获。[this] 以值的方式捕获 this 指针。[] 以引用的方式捕获所有的外部自动变量。[] 以值的方式捕获所有的外部自动变量。[] 不捕获外部的任何变量。此外params 指定 lambda 表达式的参数。 转载于:https://www.cnblogs.com/diegodu/p/6142245.html
http://www.zqtcl.cn/news/935960/

相关文章:

  • 网站分页符怎么做做网站是什么意思
  • 影视网站开发工程师店铺装修
  • ip138查询网站网址域名ip网站外包制作
  • 网站建设需求怎么写网站seo快速排名优化
  • 网站后台文章添加成功 不显示注册安全工程师是干什么的
  • 网页制作网站建设百度网站推广费用多少钱
  • 长沙网站建设软件wordpress加菜单
  • 网站建设教育板块wordpress $pagenow
  • 岳阳手机网站建设自己可以给公司做网站吗
  • 旅游网站建设目的关于建设网站的需求分析
  • 手机可以建立网站吗自己造网站
  • 厦门建网站哪家好手机编程网站
  • 网站搭建后台奥门网站建设
  • 电子商务网站免费模板展示型网站与营销型网站
  • 除了红动中国还有哪些设计网站宁波建网站哪家
  • 网站的建设费用预算策划书wdcp网站备份
  • 济南制作公司网站网站设计的实例
  • 网站建设需要的文案一个网站的后台怎么做
  • 电影网站建设模板营销方式都有哪些
  • 书店商城网站建设方案未央免费做网站
  • 北京房产网北京二手房企业网站seo方案案例
  • 大连品牌官网建站二级建造师最好的网站
  • python开发工具搜索引擎优化的英语简称
  • 做产品代理上哪个网站好东莞公司网上推广
  • 专业制作网站公司上海广告公司联系方式
  • 古交市网站建设公司四川省建设厅电子政务网站
  • 清河网站建设费用50万做网站
  • 怎么找网站的根目录平台类网站营销方案
  • 网站关键词 价格生成山西建设工程备案网站
  • 网站开发入哪个会计科目设计师自己的网站