我有这样的东西:
var arr = []
arr.indexOf(element => element.includes(''))
QtCreator为此给出了错误,我的Qt版本是5.12,我正在使用QtCreator 4.8 我可以在qml中使用这种lambda表达式吗?
答案 0 :(得分:4)
那只是Qt Creator的一个错误,Qt 5.12和更高版本支持箭头功能。 QtCreator将在即将发布的4.9版本中正确支持它们,并停止为此显示警告(QTCREATORBUG-21301和QTCREATORBUG-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
。