zoukankan      html  css  js  c++  java
  • C++匿名函数

    转自:https://www.cnblogs.com/pzhfei/archive/2013/01/14/lambda_expression.html

    1.匿名/Lambda函数

    [capture](parameters)->return-type{body}

      如果没有参数,空的圆括号()可以省略.返回值也可以省略,如果函数体只由一条return语句组成或返回类型为void的话.形如:

    [capture](parameters){body}

    2.举例

    //两数加法
    [](int x, int y) { return x + y; } // 隐式返回类型
    
    //自增
    [](int& x) { ++x; }   // 没有return语句 -> lambda 函数的返回类型是'void'
    
    
    []() { ++global_x; }  // 没有参数,仅访问某个全局变量
    []{ ++global_x; }     // 与上一个相同,省略了()

    //太厉害了。

    //给出了返回类型的
    [](int x, int y) -> int { int z = x + y; return z; }

    上面是给出了返回类型->int,如果什么也不返回->void可以省略。

    3.[]的作用

    这里主要是为了让lamda表达式可以访问外面的元素。根据设置的不同可以分为按值、引用等。

  • 相关阅读:
    UIView与CALayer的区别,很详细
    IOS图标尺寸一览
    iOS开发之WebView
    iOS开发之版本控制(SVN)
    IOS 多个ImageView图片层叠透明区域点击事件穿透
    UIButton
    UISwitch
    cocoapods_第二篇
    UIView
    IOS开发中 RunLoop,RunTime
  • 原文地址:https://www.cnblogs.com/BlueBlueSea/p/13789105.html
Copyright © 2011-2022 走看看