我写了下面的代码(仍然想知道它的用途... https://codereview.stackexchange.com/questions/242702/how-effective-is-it-to-default-to-user-input-in-c-function-parameters) 如果未传递参数,则默认为用户输入。
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
unsigned getInput() {
unsigned input;
std::cin >> input;
return input;
}
void foo(unsigned number = getInput()) {
std::cout << number << "\n";
}
int main() {
foo(1); //prints 1
foo(); //defaults to user input
return 0;
}
我想问的是,有什么办法可以转换getInput()
函数到 lambda?
一些关于
void foo(unsigned number = { []() {unsigned num = 0; std::cin >> num; return num; } }) {
std::cout << number << "\n";
}
另外,如何实现类似的功能python https://stackoverflow.com/questions/61939282/achieve-the-user-input-for-default-parameter-functionality-in-python?
是的,您可以使用 lambda。您需要做的就是在定义 lambda 后调用它,如下所示
void foo(unsigned number = []() {unsigned num = 0; std::cin >> num; return num; }())
// ^ define lambda ^^^
// call lambda_____|
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)