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 次 |
| 最近记录: |