C++:这段代码有什么作用? foo([](){bar();});

标签 c++ syntax brackets curly-braces braces

<分区>

我刚刚发现了一段我无法在 Google 上正确查找的内容。 它基本上看起来像这样 foo([](){bar();})。 这是我实际发现的:

ArduinoOTA.onStart([]() {
    Serial.println("Start");
});

有人可以向我解释一下这个语法,或者至少告诉我我在看什么吗?

最佳答案

您正在寻找 lambda expressions .

在这种情况下,它似乎正在注册一个要在开始时执行的操作。

关于C++:这段代码有什么作用? foo([](){bar();});,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39710659/

相关文章:

c++ - 在 C++ 中逐行打印两个字符串的混合?

c++ - 如何确保以正确的顺序初始化全局变量?

c# - 我如何弄清楚我需要知道什么?

python - 字符串在 `eval` 语句中被视为变量

java - 替换方括号java

android - 我们可以在签名的 APK 中找到我们的 C++ 代码吗?

c++ - 如何在 L2 缓存中找到被逐出的缓存行的位置?

haskell - 为什么我做不到 (flip (+).digitToInt) $ '4' 4

javascript - 解析包含括号的 jQuery 元素的函数

lambda - Scheme 中 lambda 表达式的求值顺序