lambda函数返回值
时间: 2023-09-02 14:10:53 浏览: 238
Lambda函数可以有返回值,返回值的类型由Lambda函数的函数体推断得出,或者可以显式指定。
下面是Lambda函数的两种语法形式:
1. 无返回值的Lambda函数(void返回类型):
```cpp
[]() {
// Lambda函数的函数体
}
```
2. 有返回值的Lambda函数:
```cpp
[]() -> 返回类型 {
// Lambda函数的函数体
}
```
在第二种形式中,通过`->`指定返回类型。返回类型可以是任何有效的C++类型,例如`int`、`double`、`std::string`等。
在Lambda函数的函数体中,使用`return`语句来返回值。如果返回类型是`void`,可以省略`return`语句。
下面是几个示例:
1. Lambda函数返回整数:
```cpp
int result = []() -> int {
return 42;
}();
```
2. Lambda函数返回字符串:
```cpp
std::string message = []() -> std::string {
return "Hello, world!";
}();
```
3. Lambda函数返回两个整数之和:
```cpp
auto sum = [](int a, int b) -> int {
return a + b;
}(3, 5);
```
需要注意的是,Lambda函数的返回值可以根据需要进行推断或指定。如果Lambda函数没有返回值,可以使用`void`作为返回类型,或者省略返回类型(C++14及更高版本)。
例如:
```cpp
[]() -> void {
// 无返回值的Lambda函数
}
```
或者:
```cpp
[]() {
// 无返回值的Lambda函数(自动推断返回类型)
}
```
希望以上解答能满足你的需求。如果你还有其他问题,请随时提问。
阅读全文