Ber*_*yTD 3 c# quantum-computing q#
我正在制作一个程序,该程序使用C#脚本中作为参数接收的整数数组,Driver.cs
但是它给出以下错误:
Error CS1503 Argument 2: cannot convert from 'long[]' to 'Microsoft.Quantum.Simulation.Core.IQArray<long>'
我试图改为传入一个字符串数组并在程序内转换它们,但是出现了相同的错误:
Error CS1503 Argument 2: cannot convert from 'string[]' to 'Microsoft.Quantum.Simulation.Core.IQArray<string>'
这是C#代码Driver.cs
- keyArray
是我要传递给Q#的数组。
using (var qsim = new QuantumSimulator())
{
var result = QMain.Run(qsim, keyArray).Result;
var (res0, res1, res2) = result;
System.Console.WriteLine(res0 + ", " + res1 + ", " + res2);
}
Run Code Online (Sandbox Code Playgroud)
Q#QMain操作在Operations.qs
:
operation QMain(keyCode : Int[]) : (Result, Result, Result)
Run Code Online (Sandbox Code Playgroud)
在Q#中,Int
数据类型对应于C#long
。
传递字符串数组也失败,具有以下签名QMain
:
operation QMain(s : String[]) : (Result, Result, Result)
Run Code Online (Sandbox Code Playgroud)
每当我尝试在中使用任何数组作为参数时,我得到的都是相同的错误QMain
。
用于在Q#代码之间传递定长数组的数据类型为QArray
。您必须先从数组中显式创建此数据类型的实例,然后再将其传递给QMain
:
var result = QMain.Run(qsim, new QArray<long>(keyArray)).Result;
Run Code Online (Sandbox Code Playgroud)
您可以在示例中看到一个将数组传递给Q#的示例。
归档时间: |
|
查看次数: |
102 次 |
最近记录: |