void f(int a, void(*b)(int))
{
b(a);
}
int main()
{
int a = 5;
int b = 6;
f(10, [a, b](int x) { cout << a+b+x; });
return 0;
}
如果我不使用' a '和' b '变量,一切正常,否则,C返回:
错误:无法转换“main()::”
注意:初始化'void f(int, void(*)(int))'的参数2
带有捕获的Lambdas无法转换为函数指针。
您可以使用std::function
作为参数类型。例如
void f(int a, std::function<void(int)> b)
{
b(a);
}
我是Kotlin的新手,很难理解下面的代码 所以这个函数叫做,它的输入参数是一个名为的函数,它是
...基本上是代码重复。是否有一种方法可以将函数作为方法参数传递,以优化这一点,使两个筛选条件都有一个方法?
我是java / kotlin函数式编程的新手,并做了一些练习。只是想知道如何在调用它时传递lambda的参数。例如,在这里调用一些方法,我需要传递一个Int参数。 如何做到这一点?答案可能非常简单,我只是没有在任何地方找到它,在文档中只有列表的例子,在这种情况下答案是清楚的:
我需要制作两个lambda函数,一个用参数调用另一个,被调用的函数将参数打印出来。我很难让它工作:第一个函数: 请告知我应该在被调用函数中输入什么代码才能接收参数“hello Jenny”?非常感谢。
问题内容: 我想为MySortedSet调用一个构造函数,该构造函数将Comparator c作为参数。我该如何修改呢? 问题答案: 如果要传递其他捕获的值作为参数,则不能使用方法引用。您将不得不使用lambda表达式来代替: =>