我试图用C++在python中实现这段高阶函数:
def add1(x):
def helper():
nonlocal x
x += 1
return x
return helper
Run Code Online (Sandbox Code Playgroud)
以下是我创建的三个版本:
#include <iostream>
#include <functional>
using namespace std;
function<int(void)> add1_v1(int x) {
function<int(void)> g = [&x]() {return ++x;};
return g;
}
auto add1_v2(int x) {
function<int(void)> g = [&x]() {return ++x;};
return g;
}
auto add1_v3(int x) {
auto g = [&x]() {return ++x;};
return g;
}
int main() {
auto a = add1_v1(100);
auto b = add1_v2(100);
auto c = add1_v3(100);
for(int i = 0; …Run Code Online (Sandbox Code Playgroud)