我只是编程的初学者,我希望将一些代码从C#转换为F#,
我已经使用了这段代码:
float[] v1=new float[10];
...
//Enqueue the Execute command.
Queue.Execute(kernelVecSum, null, **new long[] { v1.Length }**, null, null);
我之前已经问过如何转换v1
对象,
我想我知道怎么做
但是我如何使用函数调用,尤其是函数参数的new long[] { v1.Length }
部分,new long[] { v1.Length }
是什么意思?
我创建了 v1 ,就像这个let v1 = [| for i in 1.0 .. 10.0 -> 2.0 * i |]
这是对的吗?
或者我应该使用 v1 这样的let v1 = ref [| for i in 1.0 .. 10.0 -> 2.0 * i |]
?
答案 0 :(得分:2)
这实际上更像是一个C#问题......你可能会这样标记它。
在C#中
new long[] { v1.Length }
创建一个新的long
数组,其中包含一个值为v1.Length
的元素。在F#中就是这样。
[| int64 v1.Length |]
(在任何情况下,不,你不希望F#代码中有ref
。你还没有按照建议的here更正数据类型。)
答案 1 :(得分:0)
Queue.Execute(kernelVecSum, null, [| int64 (v1.Length) |], null, null)