我发现这段代码使用了C++ lambda表达式:
qreal defaultDpiScale()
{
static qreal scale = []() {
if (const QScreen *screen = QGuiApplication::primaryScreen())
return screen->logicalDotsPerInchX() / 96.0;
return 1.0;
}();
return scale;
}
为什么有些人会使用lambda编写此函数而不使用以下方式:
qreal defaultDpiScale()
{
if (const QScreen *screen = QGuiApplication::primaryScreen())
return screen->logicalDotsPerInchX() / 96.0;
else
return 1.0;
}
有性能优势吗?我只是想理解在这种情况下lambda的用处。
qreal
是什么。免费提示:不,它不是double
。 - Sam Varshavchik