如何在f#中将记录字段定义为数组?

时间:2014-10-01 20:40:47

标签: arrays f# record

我想创建一个包含8个元素的字节数组类型的记录字段,但无法找出正确的语法。

我做了类似的事情:

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

let dataValues : byte array = Array.zeroCreate 8

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

可以在记录定义中完成吗?怎么样?

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

1 个答案:

答案 0 :(得分:7)

您目前正在做的事情没有任何问题(除了您的类型定义使用的是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可能更有效率