未明确传递参数时,默认为使用lambda的用户输入 [英] Defaulting to user input using a lambda when parameter is not explicitly passed
本文介绍了未明确传递参数时,默认为使用lambda的用户输入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我编写了以下代码(仍然想知道它的用途... )如果未传递参数,则默认为用户输入。
I wrote the following code (Still wondering about its uses...) to default to user input if the parameter is not passed.
#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?
What I wanted to ask was, is there any way we can convert the getInput()
function to a lambda?
Something on the lines of
void foo(unsigned number = { []() {unsigned num = 0; std::cin >> num; return num; } }) {
std::cout << number << "\n";
}
此外,如何在python ?
推荐答案
是的,您可以使用lambda。您需要做的就是在定义后调用lambda
Yes, you can use a lambda. What you need to do is call the lambda after you define it like
void foo(unsigned number = []() {unsigned num = 0; std::cin >> num; return num; }())
// ^ define lambda ^^^
// call lambda_____|
这篇关于未明确传递参数时,默认为使用lambda的用户输入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文