尝试使用Q#设置元组时出现错误“ set语句必须具有变量或数组元素目标”

时间:2018-07-31 17:05:09

标签: .net quantum-computing q#

我正在使用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)元组类型的结果?

非常感谢。

1 个答案:

答案 0 :(得分:2)

当前(从0.2。*版本开始),编译器在不可变绑定(let)或可变绑定(mutable)或重新绑定(set)上支持元组分解。感谢您的建议,统一元组分解支持以涵盖所有三种情况确实很有意义。

请注意,我们正在https://quantum.uservoice.com/forums/906208-q-language处跟踪功能请求,因此您可能希望在其中添加建议,以确保它们进入我们的视野。