c++ 在Lambda表达式中 能获取 表达式外部的局部变量么
时间: 2024-06-12 11:07:41 浏览: 153
Lambda表达式里面修改外部变量问题
能。Lambda表达式可以访问其外部作用域内的局部变量,但是有一些限制和注意事项:
1. 访问的变量必须是final或在Lambda表达式内部不被修改的。
2. Lambda表达式中访问的变量实际上是对该变量的副本的引用,而非该变量本身。
3. Lambda表达式中的变量具有与其外部作用域中同名变量不同的生命周期。
4. 在Lambda表达式内部,不能声明与其外部作用域中同名的变量。
示例代码:
```java
public class LambdaDemo {
public static void main(String[] args) {
int x = 10;
Runnable r = () -> {
System.out.println("x = " + x); // 访问外部变量x
};
r.run();
}
}
```
输出结果:
```
x = 10
```
阅读全文