Qml文件中是否有Lambda支持?

时间:2019-01-01 06:36:02

标签: qml qtquick2

我有这样的东西:

var arr = []
arr.indexOf(element => element.includes(''))

QtCreator为此给出了错误,我的Qt版本是5.12,我正在使用QtCreator 4.8 我可以在qml中使用这种lambda表达式吗?

1 个答案:

答案 0 :(得分:4)

那只是Qt Creator的一个错误,Qt 5.12和更高版本支持箭头功能。 QtCreator将在即将发布的4.9版本中正确支持它们,并停止为此显示警告(QTCREATORBUG-21301QTCREATORBUG-20341)。

但是,就像您所说的那样,如果您要提供谓词,则需要findIndex。它确实可以在5.12中工作,支持的功能页面不是很可靠。

Qt 5.12应该支持大多数标准ECMAScript函数,请参考MDN并尝试使用您的Qt代码。

{
    let arr = ['a', 'ab', 'abc', 'abcd'];
    let index = arr.findIndex(element => element.includes('c'));
    let abcIsPresent = arr.includes('abc');
    print(index, abcIsPresent);
}

此代码在Qt 5.12中运行,并输出2 true