【问题标题】:Getting error "A set statement must have a variable or array element target" when trying to Set a Tuple using Q#尝试使用 Q# 设置元组时出现错误“设置语句必须具有变量或数组元素目标”
【发布时间】:2019-01-08 03:52:08
【问题描述】:

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

非常感谢。

【问题讨论】:

    标签: .net quantum-computing q#


    【解决方案1】:

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

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

    【讨论】:

    • 我们最近的 0.3 版本增加了这个功能。
    猜你喜欢
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-19
    • 1970-01-01
    • 2018-08-15
    • 1970-01-01
    • 2021-07-18
    相关资源
    最近更新 更多