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

Max*_*wer 3 arrays f# record

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

我做了类似的事情:

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

let dataValues : byte array = Array.zeroCreate 8

let myArray = { id = 0; data = dataValues }
Run Code Online (Sandbox Code Playgroud)

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

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

kvb*_*kvb 7

你正在做什么(除了你的类型定义使用let而不是type)之外没有任何问题,所以我并不完全清楚你要求的是什么.也许是这样的?

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

let myRecord = { id = 0; data = [| for i in 1 .. 8 -> 0uy |] }
Run Code Online (Sandbox Code Playgroud)

{ id = 0; data = Array.zeroCreate 8 }如果您愿意,您也可以使用- 数组文字通常更容易阅读,但zeroCreate如果您正在创建大数组,则可能更有效.