我只是编程的初学者,我希望将一些代码从C#转换为F#,
我已经使用了这段代码:
float[] v1=new float[10]
我需要使用这个指针传递给函数:
ComputeBuffer<float> bufV1 =
new ComputeBuffer<float>(Context, ComputeMemoryFlags.ReadWrite |
ComputeMemoryFlags.UseHostPointer, v1);
如果我在F#中创建一个像这样的数组:
let v1 = [| 1.0..10.0 |]
现在打电话给这样的动作:
let bufV1 = new ComputeBuffer<float>(Context,
ComputeMemoryFlags.ReadWrite |||
ComputeMemoryFlags.UseHostPointer, v1)
这是一个错误吗?我如何传递指针??
答案 0 :(得分:5)
(在.NET中,我们将这些东西称为引用到对象; v1
是对数组对象的引用。指针是不同的东西。)
请注意,F#称为float
的是C#称之为double
的内容。你可能需要
let v1 = [| 1.0f .. 10.0f |]
f
后缀使得值为F#float32
s(例如C#float
s)。
答案 1 :(得分:2)
不是错误。
需要指出v1
不是指针,它是.Net中的对象。