【发布时间】:2020-12-18 05:40:29
【问题描述】:
我看到下面的信号声明给出了一个语法错误:
signal mySignal(int x, int y = 0)
有没有办法用默认参数定义信号?如果不是,您会建议什么解决方法?
我可以定义两个不同的信号,但这并不理想,因为我正在加载具有此信号的组件(通过具有与信号定义相同的基本组件),并且希望保持我的信号处理程序代码多态。否则我想我必须添加一个属性来确定信号签名,以便我可以处理我的 Connections 类中的所有签名:
Connections {
target: myLoader.item
function onMySignal1stSignature(x) {
if (myLoader.item.signalType === 1) ...
}
function onMySignal2ndSignature(x, y) {
if (myLoader.item.signalType === 2) ...
}
}
这显然是丑陋和可怕的。
【问题讨论】:
-
@Farshid616 这个问题是针对功能的,而不是针对信号的。您不能调用参数数量少于声明的信号。并且 ECMAScript 7 语法在信号声明中使用时会引发语法错误。