C++11中的匿名函数(lambda函数,lambda表达式)

立即执行函数

1.     

    connect(&m_configAutoTstTimer, &QTimer::timeout, [&]()

    {
        if (!m_isConfigChanged)
        {
            slotUpdateConfig((m_devFlags & (~(1 << BITNUM_MAINDSP))));
            return;
        }


        qDebug("m_devAcked=%08x, m_devWait=%08x, m_devMainWait=%08x",
                m_devAcked, m_devWait, m_devMainWait);

    });

2.

const std::vector<uint32_t>& AES_TE()
   {
   auto compute_TE = []() -> std::vector<uint32_t> {
      std::vector<uint32_t> TE(1024);
      for(size_t i = 0; i != 256; ++i)
         {
         const uint8_t s = SE[i];
         const uint32_t x = make_uint32(xtime(s), s, s, xtime3(s));


         TE[i] = x;
         TE[i+256] = rotate_right(x, 8);
         TE[i+512] = rotate_right(x, 16);
         TE[i+768] = rotate_right(x, 24);
         }
      return TE;
   };


   static const std::vector<uint32_t> TE = compute_TE();
   return TE;

   }


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



根据场景选择是否用匿名函数

比如在回调里:

可以选择用,因为它的名字没有那么重要:
http.createServer(function(req, res) {
  // do something...
});

但是有些人喜欢分离回调函数:
http.createServer(callback);

function callback(req, res) {
  // do something...
}


匿名函数不适合使用的场景之一就是调试,



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值