我正在使用Q#和quantum dev kit。
我已经声明了此方法
operation Superdense(here : Qubit, there : Qubit) : (Result, Result)
我尝试使用mutable
变量,然后使用set
来保存调用此方法的结果,如下所示:
mutable resA = Zero;
mutable resB = Zero;
set (resA,resB) = Superdense(qubits[0],qubits[1]);
但是这样做,我得到了编译时错误:
set语句必须具有变量或数组元素目标
如果我改用let
,效果很好
let (resA,resB) = Superdense(qubits[0],qubits[1]);
谁能告诉我为什么我不能使用mutable
+ set
来保存方法的(Result,Result)
元组类型的结果?
非常感谢。
答案 0 :(得分:2)
当前(从0.2。*版本开始),编译器在不可变绑定(let
)或可变绑定(mutable
)或重新绑定(set
)上支持元组分解。感谢您的建议,统一元组分解支持以涵盖所有三种情况确实很有意义。
请注意,我们正在https://quantum.uservoice.com/forums/906208-q-language处跟踪功能请求,因此您可能希望在其中添加建议,以确保它们进入我们的视野。