我有这个代码:
let timer = new System.Diagnostics.Stopwatch()
timer.Start()
Array.zeroCreate<int> 100000000
timer.Stop()
printfn "%ims" timer.ElapsedMilliseconds
timer.Reset()
timer.Start()
Array.create 100000000 0
timer.Stop()
printfn "%ims" timer.ElapsedMilliseconds
我对其进行了测试并得到了以下结果:
0ms
200ms
如何Array.zeroCreate
如此快速地创建数组并保证它的所有元素都具有默认值?我知道在其他语言中没有这种可能性(据我所知)。在其他语言中,我只知道数组的快速初始化,哪些元素不能保证具有默认值,因为它们可以在一些垃圾所在的内存中初始化。
谢谢!