1

我正在使用 Q# 和量子开发套件

我已经声明了这个方法

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)我的方法的元组类型结果?

提前谢谢了。

4

1 回答 1

2

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

附带说明一下,我们正在https://quantum.uservoice.com/forums/906208-q-language上跟踪功能请求,因此您可能需要在此处添加建议以确保它们得到我们的关注。

于 2018-08-01T22:57:27.450 回答