首先可以明确一点设计思想
- lambda表达式的作用是为了方便程序员更加简单的写代码,其本身如果使用正确是没有问题的。
- 这种易用性对程序员的能力要求更高,功力尚欠的程序员一旦使用不好更容易产生bug。
- 工程中最重要的是写出更优秀的代码(更易读,更少bug),至于程序员舒不舒服不重要
lambda表达式 使用错误引入的bug类型
- 比方说简单的类的生命周期问题,由于lambda表达式可以捕获外部变量,如果在使用lambda表达式时,该变量已经死亡被析构了,那肯定会有问题
- 还有捕获外部变量时又有不同的捕获方式,值捕获与引用捕获,使用不好又会产生问题
- lambda表达式一般要和auto关键字搭配使用,而auto这个东西有风险(待完善)
- 调试时也会带来一些挑战