qml 函数的默认参数给出语法错误
Posted
技术标签:
【中文标题】qml 函数的默认参数给出语法错误【英文标题】:Default arguments for qml function gives syntax errors 【发布时间】:2017-05-23 07:15:57 【问题描述】:此代码在浏览器托管的 javascript 环境中运行良好:
function foo(a=true)
console.log(a)
但是在 qml 中做同样的事情就是给syntax error
。
我可能做错了什么?
【问题讨论】:
【参考方案1】:在 QML 中,你应该把函数写成
function foo(a)
if (a === undefined) a = true
console.log(a)
语法
function foo(a=true)
不支持,因为 ECMA-262 6th edition 中引入了此语法,而 QML 仅实现 fifth edition(从 Qt 5.11 开始)。
【讨论】:
我已经这样做以避免语法问题。您可以指出哪些文件是不允许的?我似乎想不出任何理由不在 QML 托管环境中包含它。 添加了对可能原因的引用。【参考方案2】:从 Qt 5.12 开始,这段代码可以正常工作。 See release note.
JavaScript 引擎现在支持 ECMAScript 7希望这对未来的人们有所帮助。
【讨论】:
这在 Qt 5.12.4 中不起作用。仍然出现语法错误。 @derm 答案是我的解决方案。 适用于 Qt5.12.9 :) @ramtheconqueror 请显示您的代码。以上是关于qml 函数的默认参数给出语法错误的主要内容,如果未能解决你的问题,请参考以下文章