2014-10-01 45 views
2

我想用8个元素创建一个类型为byte数组的记录字段,但是找不到正确的语法。如何将记录字段定义为f#中的数组?

我不喜欢的东西:

let dataRecord = { 
    id : int 
    data : byte array 
} 

let dataValues : byte array = Array.zeroCreate 8 

let myArray = { id = 0; data = dataValues } 

能将它的记录定义做什么?怎么样?

我上面的例子似乎有效,但我不知道它是否安全或最好或最正确的方法。

回答

6

你目前的工作没有问题(除了你的类型定义使用的是let而不是type),所以我不清楚你要求什么。也许这样?

type dataRecord = { 
    id : int 
    data : byte array 
} 

let myRecord = { id = 0; data = [| for i in 1 .. 8 -> 0uy |] } 

你也可以只使用{ id = 0; data = Array.zeroCreate 8 },如果你想 - 阵列文字往往是有点更容易阅读,但zeroCreate可能是更有效的,如果你要创建的大阵列。

+0

“让”是一个错误,我认为它在我的代码中是正确的,但是当简化这个例子时,我搞砸了。 :-) 谢谢您的帮助! – 2014-10-01 22:45:45

相关问题